mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* math.c (math_cbrt): new method Math.cbrt.
* configure.in (cbrt): check for replacement functions. * missing/cbrt.c: new file. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a424741c8e
commit
b160d23c68
4 changed files with 34 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Sat Feb 9 18:34:45 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* math.c (math_cbrt): new method Math.cbrt.
|
||||||
|
|
||||||
|
* configure.in (cbrt): check for replacement functions.
|
||||||
|
|
||||||
|
* missing/cbrt.c: new file.
|
||||||
|
|
||||||
Sat Feb 9 17:51:24 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat Feb 9 17:51:24 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
|
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
|
||||||
|
|
|
@ -649,7 +649,7 @@ esac
|
||||||
AC_FUNC_MEMCMP
|
AC_FUNC_MEMCMP
|
||||||
AC_REPLACE_FUNCS(dup2 memmove strerror strftime\
|
AC_REPLACE_FUNCS(dup2 memmove strerror strftime\
|
||||||
strchr strstr crypt flock vsnprintf\
|
strchr strstr crypt flock vsnprintf\
|
||||||
isnan finite isinf hypot acosh erf tgamma lgamma_r \
|
isnan finite isinf hypot acosh erf tgamma lgamma_r cbrt \
|
||||||
strlcpy strlcat)
|
strlcpy strlcat)
|
||||||
AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd eaccess\
|
AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd eaccess\
|
||||||
truncate chsize times utimes utimensat fcntl lockf lstat\
|
truncate chsize times utimes utimensat fcntl lockf lstat\
|
||||||
|
|
15
math.c
15
math.c
|
@ -400,6 +400,20 @@ math_sqrt(VALUE obj, VALUE x)
|
||||||
return DOUBLE2NUM(d);
|
return DOUBLE2NUM(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* call-seq:
|
||||||
|
* Math.cbrt(numeric) => float
|
||||||
|
*
|
||||||
|
* Returns the cube root of <i>numeric</i>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
math_cbrt(VALUE obj, VALUE x)
|
||||||
|
{
|
||||||
|
Need_Float(x);
|
||||||
|
return DOUBLE2NUM(cbrt(RFLOAT_VALUE(x)));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call-seq:
|
* call-seq:
|
||||||
* Math.frexp(numeric) => [ fraction, exponent ]
|
* Math.frexp(numeric) => [ fraction, exponent ]
|
||||||
|
@ -611,6 +625,7 @@ Init_Math(void)
|
||||||
rb_define_module_function(rb_mMath, "log2", math_log2, 1);
|
rb_define_module_function(rb_mMath, "log2", math_log2, 1);
|
||||||
rb_define_module_function(rb_mMath, "log10", math_log10, 1);
|
rb_define_module_function(rb_mMath, "log10", math_log10, 1);
|
||||||
rb_define_module_function(rb_mMath, "sqrt", math_sqrt, 1);
|
rb_define_module_function(rb_mMath, "sqrt", math_sqrt, 1);
|
||||||
|
rb_define_module_function(rb_mMath, "cbrt", math_cbrt, 1);
|
||||||
|
|
||||||
rb_define_module_function(rb_mMath, "frexp", math_frexp, 1);
|
rb_define_module_function(rb_mMath, "frexp", math_frexp, 1);
|
||||||
rb_define_module_function(rb_mMath, "ldexp", math_ldexp, 2);
|
rb_define_module_function(rb_mMath, "ldexp", math_ldexp, 2);
|
||||||
|
|
10
missing/cbrt.c
Normal file
10
missing/cbrt.c
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
double cbrt(double x)
|
||||||
|
{
|
||||||
|
if (x < 0)
|
||||||
|
return -pow(-x, 1/3.0);
|
||||||
|
else
|
||||||
|
return pow(x, 1/3.0);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue