This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
POSIX math: Add M_ constants like M_PI.
authorJarkko Hietaniemi <jhi@iki.fi>
Thu, 28 Aug 2014 00:33:55 +0000 (20:33 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Sun, 31 Aug 2014 21:53:03 +0000 (17:53 -0400)
ext/POSIX/Makefile.PL
ext/POSIX/lib/POSIX.pm
ext/POSIX/t/export.t
ext/POSIX/t/posix.t

index 77ebae7..cd0ccfb 100644 (file)
@@ -101,6 +101,10 @@ push @names, {name=>$_, type=>"NV"}
              FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX LDBL_DIG LDBL_MANT_DIG
              LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN_10_EXP LDBL_MIN_EXP));
 
+push @names, {name=>$_, type=>"NV"}
+  foreach (qw(M_E M_LOG2E M_LOG10E M_LN2 M_PI M_PI_2
+              M_PI_4 M_1_PI M_2_PI M_2_SQRT_PI M_SQRT_2 M_SQRT1_2));
+
 push @names, {name=>$_, type=>"IV", default=>["IV", "0"]}
   foreach (qw(_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED
               _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX
index 2eb0036..0cae280 100644 (file)
@@ -296,8 +296,11 @@ our %EXPORT_TAGS = (
                    LC_MONETARY LC_NUMERIC LC_TIME NULL
                    localeconv setlocale)],
 
-    math_h =>  [qw(HUGE_VAL acos asin atan ceil cosh fabs floor fmod
-               frexp ldexp log10 modf pow sinh tan tanh)],
+    math_h =>  [qw(HUGE_VAL
+                    M_E M_LOG2E M_LOG10E M_LN2 M_PI M_PI_2
+                    M_PI_4 M_1_PI M_2_PI M_2_SQRT_PI M_SQRT_2 M_SQRT1_2
+                    acos asin atan ceil cosh fabs floor fmod
+                    frexp ldexp log10 modf pow sinh tan tanh)],
 
     pwd_h =>   [],
 
index afcd097..bc2a0fc 100644 (file)
@@ -45,8 +45,11 @@ my %expect = (
                  LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP
                  LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP LINK_MAX
                  LONG_MAX LONG_MIN L_ctermid L_cuserid L_tmpname MAX_CANON
-                 MAX_INPUT MB_CUR_MAX MB_LEN_MAX NAME_MAX NCCS NDEBUG
-                 NGROUPS_MAX NOFLSH NULL OPEN_MAX OPOST O_ACCMODE O_APPEND
+                 MAX_INPUT MB_CUR_MAX MB_LEN_MAX
+                  M_1_PI M_2_PI M_2_SQRT_PI M_E M_LN2 M_LOG10E M_LOG2E
+                  M_PI M_PI_2 M_PI_4 M_SQRT1_2 M_SQRT_2
+                  NAME_MAX NCCS NDEBUG NGROUPS_MAX NOFLSH NULL
+                 OPEN_MAX OPOST O_ACCMODE O_APPEND
                  O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
                  O_WRONLY PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK
                  SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND
index da4aba8..ebef92d 100644 (file)
@@ -8,10 +8,10 @@ BEGIN {
     }
 }
 
-use Test::More tests => 111;
+use Test::More tests => 112;
 
 use POSIX qw(fcntl_h signal_h limits_h _exit getcwd open read strftime write
-            errno localeconv dup dup2 lseek access);
+            errno localeconv dup dup2 lseek access math_h);
 use strict 'subs';
 
 sub next_test {
@@ -417,6 +417,9 @@ SKIP: {
     cmp_ok($!, '==', POSIX::ENOTDIR);
 }
 
+# math_h
+cmp_ok(abs(M_PI - 3.14159265358979), '<', 1e9);
+
 # Check that output is not flushed by _exit. This test should be last
 # in the file, and is not counted in the total number of tests.
 if ($^O eq 'vos') {