[前][次][番号順一覧][スレッド一覧]

ruby-changes:3926

From: ko1@a...
Date: Sat, 9 Feb 2008 18:36:23 +0900 (JST)
Subject: [ruby-changes:3926] akr - Ruby:r15416 (trunk): * math.c (math_cbrt): new method Math.cbrt.

akr	2008-02-09 18:36:03 +0900 (Sat, 09 Feb 2008)

  New Revision: 15416

  Added files:
    trunk/missing/cbrt.c
  Modified files:
    trunk/ChangeLog
    trunk/configure.in
    trunk/math.c

  Log:
    * math.c (math_cbrt): new method Math.cbrt.
    
    * configure.in (cbrt): check for replacement functions.
    
    * missing/cbrt.c: new file.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/math.c?r1=15416&r2=15415&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15416&r2=15415&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/missing/cbrt.c?revision=15416&view=markup
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/missing/cbrt.c?r1=15416&r2=15415&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/configure.in?r1=15416&r2=15415&diff_format=u

Index: math.c
===================================================================
--- math.c	(revision 15415)
+++ math.c	(revision 15416)
@@ -402,6 +402,20 @@
 
 /*
  *  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:
  *     Math.frexp(numeric)    => [ fraction, exponent ]
  *  
  *  Returns a two-element array containing the normalized fraction (a
@@ -611,6 +625,7 @@
     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, "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, "ldexp", math_ldexp, 2);
Index: configure.in
===================================================================
--- configure.in	(revision 15415)
+++ configure.in	(revision 15416)
@@ -649,7 +649,7 @@
 AC_FUNC_MEMCMP
 AC_REPLACE_FUNCS(dup2 memmove strerror strftime\
 		 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)
 AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd eaccess\
 	      truncate chsize times utimes utimensat fcntl lockf lstat\
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15415)
+++ ChangeLog	(revision 15416)
@@ -1,3 +1,11 @@
+Sat Feb  9 18:34:45 2008  Tanaka Akira  <akr@f...>
+
+	* 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@r...>
 
 	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
Index: missing/cbrt.c
===================================================================
--- missing/cbrt.c	(revision 0)
+++ missing/cbrt.c	(revision 15416)
@@ -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);
+}
+

Property changes on: missing/cbrt.c
___________________________________________________________________
Name: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]