e$B5WJ]$G$9!#e(B
Mathe$B%b%8%e!<%k$N4X?t$N8_49@-$ND4::$G$9!#D4::$N=gHV$Oe(B math.c
e$B$GDj5A$5$le(B
e$B$F$$$k=g=x$G!“A4e(B26e$B8D$N4X?t$N$&$A!”:G=i$Ne(B7e$B8D$N$_D4::$7$^$7$?!#;D$j$Ne(B19
e$B8D$K$D$$$F$O$f$C$/$je(B(e$B=5$K0l2s$0$i$$!)e(B)e$BD4$Y$F$$$-$^$9!#e(B
3,
4e$B2s8+D>$7$?$1$I!“$=$N$?$S$K4V0c$$$,8+IU$+$k$N$G!”$^$@4V0c$$$,;D$C$Fe(B
e$B$$$k2DG=@-$,$"$j$^$9!#e(Bm(__)m
e$B%A%'%C%/9`L$O0J2<$Ne(B2e$B$D!#e(B
(1) SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
libm e$B$,%*%W%7%g%s$NF0:ne(B(*1)e$B$b4^$a$Fe(B SUSv3
e$B$K=`5r$7$F$$$k$H2>Dj$7e(B
e$B$?>e$G!"e(B1.9.1 e$B$He(B trunk e$B$NHs8_49$r%A%'%C%/!#e(B
*1 SUSv3 e$B$N;EMM=q$Ne(B [MX]|X> e$B$He(B <X| e$B$G0O$^$l$?ItJ,e(B
(2) trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
trunk
e$B$G$O?t3X4X?t$r8F$VA0$KHO0O%A%‘%C%/$r9T$J$C$F$$$k!#HO0O%A%’%Ce(B
e$B%/$rDL$C$?8e$K%W%i%C%H%U%)!<%`0MB8$NF0:n$r5/$3$92DG=@-$N$"$k2U=j$re(B
e$B%A%'%C%/$7$?!#6qBNE*$K$O!"e(BSUSv3
e$B$G%*%W%7%g%s$NF0:n$H$5$l$F$$$kItJ,e(B
e$B$H!"e(BSUSv2 e$B$Ge(B either … or …
e$B$H=q$+$l$F$$$kItJ,$G$9!#e(B
e$B$A$J$_$K$3$l$O!V2DG=@-!W$N%A%'%C%/$G$“$C$F!#<B:]$K%W%i%C%H%U%)!<%`0Me(B
e$BB8$,$”$k$+$I$&$+$OITL@$G$9!#=EH"$N6y$r$D$D$$$F$$$k$h$&$J46$8$,$9$k2Ue(B
e$B=j$b$“$C$?$1$I!”$=$N$^$^5-:$7$^$7$?!#e(B
e$B$A$J$_$K!“Hs8_49$N>pJs$r5s$2$k$N$@$1$,L\E*$G$9!#%3%a%s%H$rIU$1$F$$$k2Ue(B
e$B=j$,$”$j$^$9$,!":#8e$N%P!<%8%g%s$GBP=h$9$Y$-$+$I$&$+$H$$$&2ACMH=CG$O9Te(B
e$B$J$C$F$$$^$;$s!#e(B
([ruby-core:28286]e$B$r8+$k$H!“0U?^E*$JHs8_49$b$”$j$=$&$G$9$7e(B)
- atan2
========
1.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B?t$,B?$$$N$GI=7A<0$r;HMQ!#EyI}%U%)%s%H$r;HMQ$7$F$/$@$5$$!#e(B
e$B<0e(B 1.9.1 trunk
------------------------- -------- ------------
- atan2(e$B@5$NM-8BCMe(B, -Inf) +PI DomainError
- atan2(e$BIi$NM-8BCMe(B, -Inf) -PI DomainError
- atan2(e$B@5$NM-8BCMe(B, +Inf) +0.0 DomainError
- atan2(e$BIi$NM-8BCMe(B, +Inf) -0.0 DomainError
- atan2(+Inf, e$B@5Ii$NM-8BCMe(B) +PI/2 DomainError
- atan2(-Inf, e$B@5Ii$NM-8BCMe(B) -PI/2 DomainError
- atan2(+Inf, -Inf) +3PI/4 DomainError
- atan2(-Inf, -Inf) -3PI/4 DomainError
- atan2(+Inf, +Inf) +PI/4 DomainError
- atan2(-Inf, +Inf) -PI/4 DomainError
1.9.1 e$B$N5sF0$Ne(B 1e$B!Ae(B6
e$B$^$G$O?t3XE*$K8+$F$b0UL#$,$"$j$=$&!#?t<0$G$I$&$3$&e(B
e$B$H$$$&$N$O$o$+$i$J$$$,!"e(BWikipedia
e$B$Ne(B3e$B<!85%0%i%Ue(B(*2)e$B$r8+$k$H!"e(Bxe$B<4!"e(Bye$B<4e(B
e$B$NJRJ}$rL58B$K?-$P$7$?>l9g$r9M$($k$He(B 1.9.1
e$B$NCM$O@5$7$=$&$G$9!#e(B
7e$B!Ae(B10 e$B$O?t3XE*$K$O$“$d$7$$!#Nc$($P!“e(Batan2(y, x)
e$B$NLa$jCM$,e(B +PI/4 e$B$K$Je(B
e$B$k$?$a$K$Oe(B y/x == 1 e$B$G$”$kI,MW$,$”$k$,!"e(B+Inf
e$BF1;N$NHfN($O$J$s$i$+$NA0e(B
e$BDs>r7o$r$D$1$J$$8B$jIT2DG=$J$?$a!#e(B
1.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- atan2(y, x) e$B$Ne(B y, x e$B$N$I$A$i$+$,e(B NaN → NaN
SUSv2 e$B$G$O>e5-$NDL$j$NCM$rLa$9$3$H$K$J$C$F$$$k$N$KBP$7!"e(BSUSv3
e$B$G$O%*%We(B
e$B%7%g%s$NF0:n$K3J2<$2$5$l$F$$$k!#e(B
- cos
======
2.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B%=!<%9%3!<%I$NJQ99$,$J$$$N$GHs8_49$J$7e(B
2.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- cos(NaN) → NaN
- cos(+0.0) → 1.0
- cos(-0.0) → 1.0
- cos(+Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN - cos(-Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN
SUSv3 e$B$G$O>e5-$9$Y$F%*%W%7%g%s$NF0:n$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1, 4, 5
e$B$ODj5A$5$l$F$$$k$,!"e(B2, 3 e$B$N5-=R$O$J$$!#e(B
(2, 3 e$B$K4X$7$F$O!“IaDL$K9M$($l$Pe(B 1.0
e$B0J30$NCM$rLa$9$3$H$O$”$j$($J$$$He(B
e$B;W$&$,e(B…)
- sin
======
3.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B%=!<%9%3!<%I$NJQ99$,$J$$$N$GHs8_49$J$7e(B
3.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- sin(NaN) → NaN
- sin(+0.0) → +0.0
- sin(-0.0) → -0.0
- sin(e$BHs@55,?te(B*3) → SUSv3e$B$G$O0z?t$NCM!"e(BSUSv2(*4)
e$B$G$Oe(B 0.0 - sin(+Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN - sin(-Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN
*3 e$BHs@55,?te(B(subnormal)e$B$H$O!"e(Bdouble e$B$N>l9g!“e(B-1.0E-95
e$B$He(B +1.0E-95 e$B$N4V$Ne(B
0e$B0J30$NCM!#e(B
*4 SUSv2
e$B$N;EMM=q$G$O!VLa$jCM$,%”%s%@!<%U%m!<$7$?$H$-!W$H5-=R$5$l$F$$e(B
e$B$k!#0z?t$,Hs>o$K>.$5$$$H$-!“La$jCM$O0z?t$H$[$\F1$8CM$K$J$k$N$G!VLae(B
e$B$jCM$,%”%s%@!<%U%m!<!We(B → e$B!VLa$jCM$,Hs@55,?t!We(B →
e$B!V0z?t$,Hs@55,?t!We(B
e$B$H$$$C$?O@K!!#e(B
SUSv3 e$B$G$O>e5-$9$Y$F%*%W%7%g%s$NF0:n$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1,4,5,6
e$B$ODj5A$5$l$F$$$k$,!"e(B2, 3 e$B$N5-=R$O$J$$!#e(B
- tan
======
4.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B%=!<%9%3!<%I$NJQ99$,$J$$$N$GHs8_49$J$7e(B
4.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- tan(NaN) → NaN
- tan(+0.0) → +0.0
- tan(-0.0) → -0.0
- tan(e$BHs@55,?te(B) → SUSv3 e$B$G$O0z?t$NCM!"e(BSUSv2(*4)e$B$G$Oe(B
0.0 - tan(+Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN - tan(-Inf) → SUSv3 e$B$G$Oe(B NaN e$B$^$?$O<BAu0MB8$NCM!"e(BSUSv2
e$B$G$Oe(B 0.0 e$B$^$?$Oe(B NaN - tan(e$BM-8BCMe(B) e$B$,e(B overflow e$B$7$?$H$-e(B → ±Inf
SUSv3 e$B$G$Oe(B 1,2,3,4,5,6 e$B$,%*%W%7%g%s$NF0:n$G!"e(B7 e$B$Oe(B XSI
e$B3HD%$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1, 4, 5, 6,7 e$B$ODj5A$5$l$F$$$k$,!"e(B2, 3
e$B$N5-=R$O$J$$!#e(B
- acos
=======
5.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B%=!<%9%3!<%I$NJQ99$O$"$k$,!"5sF0$NJQ2=$J$7!#e(B
5.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- acos(NaN) → NaN
- acos(+1.0) → +0.0
SUSv3 e$B$G$O>e5-$9$Y$F%*%W%7%g%s$NF0:n$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1 e$B$ODj5Ae(B
e$B$5$l$F$$$k$,!"e(B2 e$B$N5-=R$O$J$$!#e(B
- asin
=======
6.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
SUSv3 e$B$K$O!"e(B
If x is subnormal, a range error may occur and x should be returned.
e$B$H=q$+$l$F$$$k$N$G!"0z?t$,Hs@55,?t$N$H$-<BAu$K$h$C$F$Oe(B errno
e$B$Ke(B ERANGE
e$B$,@_Dj$5$l$k!#$3$N$H$-e(B 1.9.1 e$B$G$Oe(B Errno::ERANGE
e$BNc30$,5s$,$k!#e(B
e$B0lJ}!"e(Btrunk e$B$G$ONc30$r5s$2$J$$!#e(B
6.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- asin(NaN) → NaN
- asin(+0.0) → +0.0
- asin(-0.0) → -0.0
- asin(e$BHs@55,?te(B) → SUSv3
e$B$G$O0z?t$NCM!#e(BSUSv2(*4)e$B$G$Oe(B 0.0
SUSv3 e$B$G$O>e5-$9$Y$F%*%W%7%g%s$NF0:n$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1, 4 e$B$Oe(B
e$BDj5A$5$l$F$$$k$,!"e(B2, 3 e$B$N5-=R$O$J$$!#e(B
- atan
=======
7.1. SUSv3e$B=`5r4D6-$G$Ne(B 1.9.1 e$B$He(B trunk e$B$NHs8_49e(B
e$B%=!<%9%3!<%I$NJQ99$,$J$$$N$GHs8_49$J$7e(B
7.2. trunk e$B$G$N%W%i%C%H%U%)!<%`4V$NHs8_49$N2DG=@-e(B
- atan(NaN) → NaN
- atan(+0.0) → +0.0
- atan(-0.0) → -0.0
- atan(+Inf) → +PI/2
- atan(-Inf) → -PI/2
- atan(e$BHs@55,?te(B) → SUSv3
e$B$G$O0z?t$NCM!#e(BSUSv2(*4)e$B$G$Oe(B 0.0
SUSv3 e$B$G$O>e5-$9$Y$F%*%W%7%g%s$NF0:n$H$J$C$F$$$k!#e(BSUSv2
e$B$G$O!"e(B1, 6 e$B$Oe(B
e$BDj5A$5$l$F$$$k$,!"e(B2, 3, 4, 5 e$B$N5-=R$O$J$$!#e(B