# Prefix math\_\* funcs

**URL:** <https://www.ruby-forum.com/t/prefix-math-funcs/151717>\
**Category:** Development\
**Created:** [October 24, 2008, 7:44pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717 "2008-10-24T19:44:55Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 24, 2008, 7:44pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/1 "2008-10-24T19:44:55Z")

</div>

e$B:XF#$H?=$7$^$9!#e(B

complex.ce$B$G;H$&$?$a$K!"$$$/$D$+?t3X4X?t$+$ie(Bstatice$B$,$H$l$?$h$&$G$9$,!"e(B  
e$B30It$K=P$9$J$i$Pe(B rb\_ e$B@\F,\<-$rIU$1$F$[$7$$$G$9!#e(B

# Index: complex.c

— complex.c (revision 19925)  
+++ complex.c (working copy)  
@@ -414,31 +414,31 @@  
return rb\_funcall2(rb\_cComplex, id\_convert, argc, argv);  
}

-extern VALUE math\_atan2(VALUE obj, VALUE x, VALUE y);  
-extern VALUE math\_cos(VALUE obj, VALUE x);  
-extern VALUE math\_cosh(VALUE obj, VALUE x);  
-extern VALUE math\_exp(VALUE obj, VALUE x);  
-extern VALUE math\_hypot(VALUE obj, VALUE x, VALUE y);  
-extern VALUE math\_log(int argc, VALUE \*argv);  
-extern VALUE math\_sin(VALUE obj, VALUE x);  
-extern VALUE math\_sinh(VALUE obj, VALUE x);  
-extern VALUE math\_sqrt(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_atan2(VALUE obj, VALUE x, VALUE y);  
+extern VALUE rb\_math\_cos(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_cosh(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_exp(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_hypot(VALUE obj, VALUE x, VALUE y);  
+extern VALUE rb\_math\_log(int argc, VALUE \*argv);  
+extern VALUE rb\_math\_sin(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_sinh(VALUE obj, VALUE x);  
+extern VALUE rb\_math\_sqrt(VALUE obj, VALUE x);

-#define m\_atan2\_bang(x,y) math\_atan2(Qnil,x,y)  
-#define m\_cos\_bang(x) math\_cos(Qnil,x)  
-#define m\_cosh\_bang(x) math\_cosh(Qnil,x)  
-#define m\_exp\_bang(x) math\_exp(Qnil,x)  
-#define m\_hypot(x,y) math\_hypot(Qnil,x,y)  
+#define m\_atan2\_bang(x,y) rb\_math\_atan2(Qnil,x,y)  
+#define m\_cos\_bang(x) rb\_math\_cos(Qnil,x)  
+#define m\_cosh\_bang(x) rb\_math\_cosh(Qnil,x)  
+#define m\_exp\_bang(x) rb\_math\_exp(Qnil,x)  
+#define m\_hypot(x,y) rb\_math\_hypot(Qnil,x,y)

static VALUE  
m\_log\_bang(VALUE x)  
{

- return math\_log(1, &x);

- return rb\_math\_log(1, &x);  
}

-#define m\_sin\_bang(x) math\_sin(Qnil,x)  
-#define m\_sinh\_bang(x) math\_sinh(Qnil,x)  
-#define m\_sqrt\_bang(x) math\_sqrt(Qnil,x)  
+#define m\_sin\_bang(x) rb\_math\_sin(Qnil,x)  
+#define m\_sinh\_bang(x) rb\_math\_sinh(Qnil,x)  
+#define m\_sqrt\_bang(x) rb\_math\_sqrt(Qnil,x)

# static VALUE m\_cos(VALUE x) Index: math.c

— math.c (revision 19925)  
+++ math.c (working copy)  
@@ -82,7 +82,7 @@  
\*/

VALUE  
-math\_atan2(VALUE obj, VALUE y, VALUE x)  
+rb\_math\_atan2(VALUE obj, VALUE y, VALUE x)  
{  
Need\_Float2(y, x);  
return DBL2NUM(atan2(RFLOAT\_VALUE(y), RFLOAT\_VALUE(x)));  
@@ -98,7 +98,7 @@  
\*/

VALUE  
-math\_cos(VALUE obj, VALUE x)  
+rb\_math\_cos(VALUE obj, VALUE x)  
{  
Need\_Float(x);  
return DBL2NUM(cos(RFLOAT\_VALUE(x)));  
@@ -113,7 +113,7 @@  
\*/

VALUE  
-math\_sin(VALUE obj, VALUE x)  
+rb\_math\_sin(VALUE obj, VALUE x)  
{  
Need\_Float(x);

@@ -182,7 +182,7 @@  
\*/

static VALUE  
-math\_atan(VALUE obj, VALUE x)  
+rb\_math\_atan(VALUE obj, VALUE x)  
{  
Need\_Float(x);  
return DBL2NUM(atan(RFLOAT\_VALUE(x)));  
@@ -204,7 +204,7 @@  
\*/

VALUE  
-math\_cosh(VALUE obj, VALUE x)  
+rb\_math\_cosh(VALUE obj, VALUE x)  
{  
Need\_Float(x);

@@ -228,7 +228,7 @@  
\*/

VALUE  
-math\_sinh(VALUE obj, VALUE x)  
+rb\_math\_sinh(VALUE obj, VALUE x)  
{  
Need\_Float(x);  
return DBL2NUM(sinh(RFLOAT\_VALUE(x)));  
@@ -318,7 +318,7 @@  
\*/

VALUE  
-math\_exp(VALUE obj, VALUE x)  
+rb\_math\_exp(VALUE obj, VALUE x)  
{  
Need\_Float(x);  
return DBL2NUM(exp(RFLOAT\_VALUE(x)));  
@@ -344,7 +344,7 @@  
\*/

VALUE  
-math\_log(int argc, VALUE \*argv)  
+rb\_math\_log(int argc, VALUE \*argv)  
{  
VALUE x, base;  
double d;  
@@ -439,7 +439,7 @@  
\*/

VALUE  
-math\_sqrt(VALUE obj, VALUE x)  
+rb\_math\_sqrt(VALUE obj, VALUE x)  
{  
double d;

@@ -541,7 +541,7 @@  
\*/

VALUE  
-math\_hypot(VALUE obj, VALUE x, VALUE y)  
+rb\_math\_hypot(VALUE obj, VALUE x, VALUE y)  
{  
Need\_Float2(x, y);  
return DBL2NUM(hypot(RFLOAT\_VALUE(x), RFLOAT\_VALUE(y)));  
@@ -678,34 +678,34 @@  
rb\_define\_const(rb\_mMath, “E”, DBL2NUM(exp(1.0)));  
#endif

- rb\_define\_module\_function(rb\_mMath, “atan2”, math\_atan2, 2);
- rb\_define\_module\_function(rb\_mMath, “cos”, math\_cos, 1);
- rb\_define\_module\_function(rb\_mMath, “sin”, math\_sin, 1);

- rb\_define\_module\_function(rb\_mMath, “atan2”, rb\_math\_atan2, 2);

- rb\_define\_module\_function(rb\_mMath, “cos”, rb\_math\_cos, 1);

- rb\_define\_module\_function(rb\_mMath, “sin”, rb\_math\_sin, 1);  
rb\_define\_module\_function(rb\_mMath, “tan”, math\_tan, 1);

- rb\_define\_module\_function(rb\_mMath, “atan”, math\_atan, 1);

- rb\_define\_module\_function(rb\_mMath, “atan”, rb\_math\_atan, 1);

- rb\_define\_module\_function(rb\_mMath, “cosh”, math\_cosh, 1);
- rb\_define\_module\_function(rb\_mMath, “sinh”, math\_sinh, 1);

- rb\_define\_module\_function(rb\_mMath, “cosh”, rb\_math\_cosh, 1);

- rb\_define\_module\_function(rb\_mMath, “sinh”, rb\_math\_sinh, 1);  
rb\_define\_module\_function(rb\_mMath, “tanh”, math\_tanh, 1);

- rb\_define\_module\_function(rb\_mMath, “exp”, math\_exp, 1);
- rb\_define\_module\_function(rb\_mMath, “log”, math\_log, -1);

- rb\_define\_module\_function(rb\_mMath, “exp”, rb\_math\_exp, 1);
- rb\_define\_module\_function(rb\_mMath, “log”, rb\_math\_log, -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, “sqrt”, math\_sqrt, 1);

- rb\_define\_module\_function(rb\_mMath, “sqrt”, rb\_math\_sqrt, 1);  
rb\_define\_module\_function(rb\_mMath, “cbrt”, math\_cbrt, 1);

- rb\_define\_module\_function(rb\_mMath, “hypot”, math\_hypot, 2);

- rb\_define\_module\_function(rb\_mMath, “hypot”, rb\_math\_hypot, 2);

e$B!\<!\<e(B  
e$B:XF#$?$@$7e(B

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 25, 2008, 6:21pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/2 "2008-10-25T18:21:02Z")

</div>

> complex.ce$B$G;H$&$?$a$K!"$$$/$D$+?t3X4X?t$+$ie(Bstatice$B$,$H$l$?$h$&$G$9$,!"e(B  
> e$B30It$K=P$9$J$i$Pe(B rb\_ e$B@\F,\<-$rIU$1$F$[$7$$$G$9!#e(B

e$B$3$l$O$3$&$7$?$[$&$,$$$$$s$G$7$g$&$+!#e(Brb\_  
e$B$r$D$1$k$N$O!"0UL#$,JQ$k$h$&e(B  
e$B$J46$8$G$=$N$^$^$K$7$F$$$?$@$1$G$9$,!“JQ99$9$k\>l9g$O!”:#30It$K8+$($F$ke(B  
e$BJ,$@$1$G$$$$$G$9$+!#$=$l$H$b!"A4Ite(B rb\_  
e$B$r$D$1$F30It$K$5$i$7$?$[$&$,$$$$e(B  
e$B$G$9$+!#e(B

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 27, 2008, 5:30pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/3 "2008-10-27T17:30:52Z")

</div>

e$B:XF#$G$9!#e(B

On Sun, 26 Oct 2008 01:19:01 +0900  
Tadayoshi F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > complex.ce$B$G;H$&$?$a$K!"$$$/$D$+?t3X4X?t$+$ie(Bstatice$B$,$H$l$?$h$&$G$9$,!"e(B  
> > e$B30It$K=P$9$J$i$Pe(B rb\_ e$B@\F,\<-$rIU$1$F$[$7$$$G$9!#e(B
> 
> e$B$3$l$O$3$&$7$?$[$&$,$$$$$s$G$7$g$&$+!#e(Brb\_ e$B$r$D$1$k$N$O!"0UL#$,JQ$k$h$&e(B  
> e$B$J46$8$G$=$N$^$^$K$7$F$$$?$@$1$G$9$,!“JQ99$9$k\>l9g$O!”:#30It$K8+$($F$ke(B  
> e$BJ,$@$1$G$$$$$G$9$+!#$=$l$H$b!"A4Ite(B rb\_ e$B$r$D$1$F30It$K$5$i$7$?$[$&$,$$$$e(B  
> e$B$G$9$+!#e(B

e$B$H$j$“$($:!”:#30It$K8+$($F$$$kJ,$@$1$G==J,$G$O$J$$$G$7$g$&$+!#e(B  
e$BB\>$N4X?t$b!"30It$+$i8+$($k$h$&$K$9$k$H$-$K$Oe(Brb\_e$B$J$I$r$D$1$k$N$,47=,$@$H;W$$$^$9!#e(B

# 

rb\_e$B$O!“L\>A0$N\>WFM$r2sHr$9$k$?$a$N$”$k\<o$N%Q%C%1!\<%8L\>$G$"$k$H$$$&G’\<1$G5o$^$9e(B

e$B$7$+$7;~4|$,$"$l$J$N$G!"e(BYuguie$B$5$s$K5v2D$r6D$.$?$$$G$9!#e(B

math\_e$B$H$$$&G!2?$K$b$“$j$=$&$J$,\<1JL;R$,@hF,$K$”$k\>uBV$G8GDj$5$l$F$7$^$&$N$Oe(B  
e$B8D?ME\*$K$Oe(B(e$B$-$C$HB\>$Ne(BAPIe$BMxMQ\<T$be(B)e$B$"$^$j$&$l$7$/$J$$$G$9$7!“B\>$N4X?t$K9g$o$;$ke(B  
e$B0UL#$G$b!”$$$+$,$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 27, 2008, 11:49pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/4 "2008-10-27T23:49:28Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:36962] Re: prefix math\_\* funcs”  
on Tue, 28 Oct 2008 03:17:46 +0900, Tadayoshi F.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> math\_e$B$H$$$&G!2?$K$b$“$j$=$&$J$,\<1JL;R$,@hF,$K$”$k\>uBV$G8GDj$5$l$F$7$^$&$N$Oe(B  
|\> e$B8D?ME\*$K$Oe(B(e$B$-$C$HB\>$Ne(BAPIe$BMxMQ\<T$be(B)e$B$“$^$j$&$l$7$/$J$$$G$9$7!“B\>$N4X?t$K9g$o$;$ke(B  
|\> e$B0UL#$G$b!”$$$+$,$G$7$g$&$+!#e(B  
|  
|e$B$=$N$”$?$j4pK\E\*$K$O;?@.$G$9!#e(B  
|  
|e$B$?$@!"e(Bruby e$B\<+BN$b4^$a$FA4BN$H$7$F4K$$0u\>]$G$9$M!#%/%i%9%a%=%C%I$d%$%s%9e(B  
|e$B%?%s%9%a%=%C%I6&DL$G$D$+$&%3!\<%I!"Dj?t!“30It$+$i$D$+$C$F$b$i$&$D$b$j$Ge(B  
|e$B$J$/$F$b!“30$+$i$\_$($l$P!”$=$l$O8x3+%a%=%C%I$J$N$@!”$H$$$&9M$($,CJ!96/e(B  
|e$B$/$J$C$F$-$F$$$k$h$&$K46$8$^$9$,!“e(Bruby e$B$O$=$&$$$&;v$K1~$($i$l$k$h$&$J;Ee(B  
|e$BAH$K$J$C$F$J$$$H;W$$$^$9!#$=$&$$$&$3$H$O$”$^$j0U\<1$5$l$F$$$J$$$N$G$7$ge(B  
|e$B$&!#e(B

e$B0u\>]$K%D%C%3$`$N$b$I$&$+$H;W$o$J$$$G$b$J$$$G$9$,!“$b$&$A$g$Ce(B  
e$B$H65$($F$$$?$@$1$k$H;29M$K$J$j$^$9!#0JA0$O%a%=%C%I$rDj5A$9$ke(B  
e$B$J$I$”$+$i$5$^$Ke(BAPIe$B$H$J$k4X?t0J30$K$Oe(Brb\_e$B$J$I$Ne(Bprefixe$B$r$D$1$Fe(B  
e$B$$$J$+$C$?$H$$$&$N$O$“$j$^$9$,!”:#$O$=$&$$$&$N$Oe(B(e$B$"$^$je(B)e$B;D$Ce(B  
e$B$F$$$J$$$N$G$O$J$$$+$H;W$$$^$9!#e(B

e$B$3$3$G!V4K$$0u\>]!W$H$+!Ve(Bruby  
e$B$O$=$&$$$&;v$K1~$($i$l$k$h$&$J;Ee(B  
e$BAH$K$J$C$F$J$$!W$H$$$&$N$O!“$I$&$$$&E@$r$5$7$F$\*$i$l$k$N$G$7$ge(B  
e$B$&$+!#A0\<T$Oe(Brb\_e$B$He(Bruby\_e$B$N;H$$J,$1$,87L)$K7h$^$C$F$J$$$3$H$+$Je(B  
e$B$”$H$b;W$($^$9$,!#e(B

```
                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

```

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 27, 2008, 7:18pm UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/5 "2008-10-27T19:18:47Z")

</div>

> e$B$H$j$"$($:!":#30It$K8+$($F$$$kJ,$@$1$G==J,$G$O$J$$$G$7$g$&$+!#e(B  
> `\>  
> e$BB\>$N4X?t$b!"30It$+$i8+$($k$h$&$K$9$k$H$-$K$Oe(Brb\_e$B$J$I$r$D$1$k$N$,47=,$@$H;W$$$^$9!#e(B

bignum.c e$B$J$I$O!“e(Bstatic e$B$G$be(B rb\_  
e$B$,$D$$$F$k$b$N$b$”$j$^$9$7!"KM$K$O$h$/e(B  
e$B$o$+$i$J$$$G$9$M$(!#e(B

> e$B$7$+$7;~4|$,$"$l$J$N$G!"e(BYuguie$B$5$s$K5v2D$r6D$.$?$$$G$9!#e(B

e$B$?$V$s:#2s$N$K$OH?1G$5$l$J$$$s$8$c$J$$$H;W$$$^$9$,!"I,MW$@$C$?$iC/$+D\>e(B  
e$B$7$F$\*$$$F$b$i$($l$P$H;W$$$^$9!#e(B

> math\_e$B$H$$$&G!2?$K$b$"$j$=$&$J$,\<1JL;R$,@hF,$K$"$k\>uBV$G8GDj$5$l$F$7$^$&$N$Oe(B  
> e$B8D?ME\*$K$Oe(B(e$B$-$C$HB\>$Ne(BAPIe$BMxMQ\<T$be(B)e$B$"$^$j$&$l$7$/$J$$$G$9$7!“B\>$N4X?t$K9g$o$;$ke(B  
> e$B0UL#$G$b!”$$$+$,$G$7$g$&$+!#e(B

e$B$=$N$"$?$j4pK\E\*$K$O;?@.$G$9!#e(B

e$B$?$@!"e(Bruby  
e$B\<+BN$b4^$a$FA4BN$H$7$F4K$$0u\>]$G$9$M!#%/%i%9%a%=%C%I$d%$%s%9e(B  
e$B%?%s%9%a%=%C%I6&DL$G$D$+$&%3!\<%I!"Dj?t!“30It$+$i$D$+$C$F$b$i$&$D$b$j$Ge(B  
e$B$J$/$F$b!“30$+$i$\_$($l$P!”$=$l$O8x3+%a%=%C%I$J$N$@!”$H$$$&9M$($,CJ!96/e(B  
e$B$/$J$C$F$-$F$$$k$h$&$K46$8$^$9$,!“e(Bruby  
e$B$O$=$&$$$&;v$K1~$($i$l$k$h$&$J;Ee(B  
e$BAH$K$J$C$F$J$$$H;W$$$^$9!#$=$&$$$&$3$H$O$”$^$j0U\<1$5$l$F$$$J$$$N$G$7$ge(B  
e$B$&!#e(B

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 28, 2008, 12:15am UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/6 "2008-10-28T00:15:48Z")

</div>

> e$B0u\>]$K%D%C%3$`$N$b$I$&$+$H;W$o$J$$$G$b$J$$$G$9$,!"$b$&$A$g$Ce(B  
> e$B$H65$($F$$$?$@$1$k$H;29M$K$J$j$^$9!#0JA0$O%a%=%C%I$rDj5A$9$ke(B  
> e$B$J$I$"$+$i$5$^$Ke(BAPIe$B$H$J$k4X?t0J30$K$Oe(Brb\_e$B$J$I$Ne(Bprefixe$B$r$D$1$Fe(B  
> e$B$$$J$+$C$?$H$$$&$N$O$"$j$^$9$,!":#$O$=$&$$$&$N$Oe(B(e$B$"$^$je(B)e$B;D$Ce(B  
> e$B$F$$$J$$$N$G$O$J$$$+$H;W$$$^$9!#e(B

e$B@h$K8@$C$?$h$&$K$=$N$"$?$j$h$/$o$+$i$J$$$N$G$9!#e(Brb\_  
e$B$,$"$k$+$i30It8~$1e(B  
e$B$H$$$&$o$1$G$b$J$$$h$&$G$9$7!#e(B

> e$B$3$3$G!V4K$$0u\>]!W$H$+!Ve(Bruby e$B$O$=$&$$$&;v$K1~$($i$l$k$h$&$J;Ee(B  
> e$BAH$K$J$C$F$J$$!W$H$$$&$N$O!"$I$&$$$&E@$r$5$7$F$\*$i$l$k$N$G$7$ge(B  
> e$B$&$+!#A0\<T$Oe(Brb\_e$B$He(Bruby\_e$B$N;H$$J,$1$,87L)$K7h$^$C$F$J$$$3$H$+$Je(B  
> e$B$"$H$b;W$($^$9$,!#e(B

e$B$?$H$($P!“e(BComplex.generic?  
e$B$N$h$&$J$b$N$G$9!#$3$l$OMxMQ\<T$K$D$+$C$F$b$ie(B  
e$B$&$?$a$N$b$N$G$O$J$$$N$G$9$,!“8x3+$5$l$F$$$^$9!#$-$C$A$j$D$+$$$o$1$k$3e(B  
e$B$H$b$G$-$k$G$7$g$&$,!”$=$&$$$&$3$H$rG0F,$KCV$$$F$O$$$J$$$h$&$K8+$($^$9!#e(B  
e$B$=$&$$$&$3$H$K$”$^$j5$$K$7$J$$J82=$J$N$8$c$J$$$+$H;W$C$?$o$1$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 28, 2008, 12:37am UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/7 "2008-10-28T00:37:26Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:36964] Re: prefix math\_\* funcs”  
on Tue, 28 Oct 2008 08:14:22 +0900, Tadayoshi F.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> e$B0u\>]$K%D%C%3$`$N$b$I$&$+$H;W$o$J$$$G$b$J$$$G$9$,!“$b$&$A$g$Ce(B  
|\> e$B$H65$($F$$$?$@$1$k$H;29M$K$J$j$^$9!#0JA0$O%a%=%C%I$rDj5A$9$ke(B  
|\> e$B$J$I$”$+$i$5$^$Ke(BAPIe$B$H$J$k4X?t0J30$K$Oe(Brb\_e$B$J$I$Ne(Bprefixe$B$r$D$1$Fe(B  
|\> e$B$$$J$+$C$?$H$$$&$N$O$“$j$^$9$,!”:#$O$=$&$$$&$N$Oe(B(e$B$“$^$je(B)e$B;D$Ce(B  
|\> e$B$F$$$J$$$N$G$O$J$$$+$H;W$$$^$9!#e(B  
|  
|e$B@h$K8@$C$?$h$&$K$=$N$”$?$j$h$/$o$+$i$J$$$N$G$9!#e(Brb\_ e$B$,$"$k$+$i30It8~$1e(B  
|e$B$H$$$&$o$1$G$b$J$$$h$&$G$9$7!#e(B

e$B$H$$$&$+!"8=:\_$NJ}?K$Oe(B

- e$B%7%s%%k$,30It$+$i8+$($k;~$K$Oe(Brb\_e$B$r$D$1$ke(B
- e$B%7%s%%k$,\>-Mh30It$+$i8+$($k$h$&$K$J$k$+$b$7$l$J$$;~$K$Oe(B  
rb\_e$B$r$D$1$ke(B

e$B$H$$$&46$8$G$9!#!V30It$+$i8+$($ke(B(external)e$B!W$H!V30It8~$1!W$Oe(B  
e$B$A$g$C$H%K%e%“%s%9$,0c$&$G$7$g$&$M!#A0\<T$K$O$”$^$j0U;W$,F~$Ce(B  
e$B$F$J$$$H8@$&$+!#e(B

|\> e$B$3$3$G!V4K$$0u\>]!W$H$+!Ve(Bruby e$B$O$=$&$$$&;v$K1~$($i$l$k$h$&$J;Ee(B  
|\> e$BAH$K$J$C$F$J$$!W$H$$$&$N$O!“$I$&$$$&E@$r$5$7$F$\*$i$l$k$N$G$7$ge(B  
|\> e$B$&$+!#A0\<T$Oe(Brb\_e$B$He(Bruby\_e$B$N;H$$J,$1$,87L)$K7h$^$C$F$J$$$3$H$+$Je(B  
|\> e$B$”$H$b;W$($^$9$,!#e(B  
|  
|e$B$?$H$($P!“e(BComplex.generic? e$B$N$h$&$J$b$N$G$9!#$3$l$OMxMQ\<T$K$D$+$C$F$b$ie(B  
|e$B$&$?$a$N$b$N$G$O$J$$$N$G$9$,!“8x3+$5$l$F$$$^$9!#$-$C$A$j$D$+$$$o$1$k$3e(B  
|e$B$H$b$G$-$k$G$7$g$&$,!”$=$&$$$&$3$H$rG0F,$KCV$$$F$O$$$J$$$h$&$K8+$($^$9!#e(B  
|e$B$=$&$$$&$3$H$K$”$^$j5$$K$7$J$$J82=$J$N$8$c$J$$$+$H;W$C$?$o$1$G$9!#e(B

e$B$&!\<$s!“%i%$%V%i%j$NOC$+$!!#$^$”!“$”$s$^$j87L)$K30ItFbIt$H7he(B  
e$B$a$kJ82=$G$O$J$$$N$+$b$7$l$^$;$s$,!#e(B

```
                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

```

---

<div class="post-metadata">

**Author:** ![sugie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/82dd89/32.png) [@sugie](https://www.ruby-forum.com/u/sugie)\
**Post date:** [October 28, 2008, 5:31am UTC](https://www.ruby-forum.com/t/prefix-math-funcs/151717/8 "2008-10-28T05:31:03Z")

</div>

e$B$J$+$@$G$9!#e(B

At Tue, 28 Oct 2008 08:36:25 +0900,  
Yukihiro M. wrote in [ruby-dev:36965]:

> e$B$H$$$&$+!"8=:\_$NJ}?K$Oe(B
> 
> - e$B%7%s%%k$,30It$+$i8+$($k;~$K$Oe(Brb\_e$B$r$D$1$ke(B
> - e$B%7%s%%k$,\>-Mh30It$+$i8+$($k$h$&$K$J$k$+$b$7$l$J$$;~$K$Oe(B  
> rb\_e$B$r$D$1$ke(B

- 

e$B%W%i%C%H%U%)!\<%`$,;}$C$F$$$kL\>A0$He(B(statice$B$G$be(B)e$B\>WFM$7$?$N$G$7$ge(B  
e$B$&$,$J$$$N$Ge(Brb\_e$B$r$D$1$?e(B
