Special Value Specification for the VML

Function Input Argument Result Current state
Default processor Intel® Pentium® III processor Intel® Pentium® 4 processor Intel® Itanium® 2 processor Intel® Pentium® 4 processor with Streaming SIMD Extensions 3
float double float double float double float double float double
HA LA HA LA HA LA HA LA HA LA HA LA HA LA HA LA HA LA HA LA
Inv(x) 0 + Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
1 1 +   +   +   +   +   +   +   +   +   +  
2 1/2 +   +   +   +   +   +   +   +   +   +  
Div(x,y) 0, 0 NaN (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
0 / (+/-)Inf 0 +   +   +   +   +   +   +   +   +   +  
(+/-)Inf / (+/-)Inf NaN (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
(+/-)Inf / 0 (+/-)Inf +   +   +   +   +   +   +   +   +   +  
x / x for all non-special x 1 +   +   +   +   +   +   +   +   +   +  
Sqrt(x) +/- 0 +/- 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf + Inf +   +   +   +   +   +   +   +   +   +  
- Inf NaN (Raise InvalidExeption) +   +   +   +   +   +   +   +   +   +  
x<0 NaN (Raise InvalidExeption) +   +   +   +   +   +   +   +   +   +  
InvSqrt(x) 0 + Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
NaN NaN +   +   +   +   +   +   +   +   +   +  
x<0 NaN +   +   +   +   +   +   +   +   +   +  
+ Inf 0 +   +   +   +   +   +   +   +   +   +  
- Inf NaN +   +   +   +   +   +   +   +   +   +  
Cbrt(x) +/- 0 +/- 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf +/- Inf +   +   +   +   +   +   +   +   +   +  
InvCbrt(x) +/- 0 +/- Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf +/- 0 +   +   +   +   +   +   +   +   +   +  
Pow(x,y) Any x (even NaN) and y=0 1 +   +   +   +   +   +   +   +   +   +  
Any NaN (Both QnaN andSNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
|x|>1, y=Inf Inf +   +   +   +   +   +   +   +   +   +  
|x|<1, y=Inf 0 +   +   +   +   +   +   +   +   +   +  
|x|>1, y=-Inf 0 +   +   +   +   +   +   +   +   +   +  
|x|<1, y=-Inf Inf +   +   +   +   +   +   +   +   +   +  
x=Inf, y>0 Inf +   +   +   +   +   +   +   +   +   +  
x=Inf, y<0 0 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y odd pos. int - Inf +   +   +   +   +   +   +   +   +   +  
x=-Inf, y not odd and pos.int + Inf +   +   +   +   +   +   +   +   +   +  
x=-Inf, y odd neg. int 0 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y not odd and neg.int 0 +   +   +   +   +   +   +   +   +   +  
x=-1, y=(+/-)Inf 1 +   +   +   +   +   +   +   +   +   +  
x=+1, y - any, even a NaN 1 +   +   +   +   +   +   +   +   +   +  
x<0 and y finitenon-int NaN (Raise InvalidExeption) +   +   +   +   +   +   +   +   +   +  
x=(+/-)0, y odd neg. int (+/-)Inf (Raise DZExeption) +   +   +   +   +   +   +   +   +   +  
Powx(x,y) Any x (even NaN) and y=0 1 +   +   +   +   +   +   +   +   +   +  
Any NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
|x|>1, y=Inf Inf +   +   +   +   +   +   +   +   +   +  
|x|<1, y=Inf 0 +   +   +   +   +   +   +   +   +   +  
|x|>1, y=-Inf 0 +   +   +   +   +   +   +   +   +   +  
|x|<1, y=-Inf Inf +   +   +   +   +   +   +   +   +   +  
x=Inf, y>0 Inf +   +   +   +   +   +   +   +   +   +  
x=Inf, y<0 0 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y odd pos. int - Inf +   +   +   +   +   +   +   +   +   +  
x=-Inf, y not odd and pos.int + Inf +   +   +   +   +   +   +   +   +   +  
x=-Inf, y odd neg. int 0 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y not odd and neg.int 0 +   +   +   +   +   +   +   +   +   +  
x=-1, y=(+/-)Inf 1 +   +   +   +   +   +   +   +   +   +  
x=+1, y - any, even a NaN 1 +   +   +   +   +   +   +   +   +   +  
x<0 and y finitenon-int NaN (Raise Invalid Exeption) +   +   +   +   +   +   +   +   +   +  
x=(+/-)0, y odd neg. int (+/-)Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
Exp(x) 0 1 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
x> Precision`s OverflowThreshold Inf (Raise Overflow Exeption) +   +   +   +   +   +   +   +   +   +  
Ln(x) 1 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
0 -Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
x<0 NaN +   +   +   +   +   +   +   +   +   +  
+ Inf Inf +   +   +   +   +   +   +   +   +   +  
- Inf NaN (Raise Invalid Exeption) +   +   +   +   +   +   +   +   +   +  
Log10(x) 1 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
0 -Inf (Raise DZ Exeption) +   +   +   +   +   +   +   +   +   +  
x<0 NaN +   +   +   +   +   +   +   +   +   +  
+ Inf + Inf +   +   +   +   +   +   +   +   +   +  
- Inf NaN (Raise InvalidExeption) +   +   +   +   +   +   +   +   +   +  
Cos(x) 0 1 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
Sin(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
SinCos(x) 0 Cos = 1, Sin = 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
Tan(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
Acos(x) 1 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
|x|>1 NaN (Raise Invalid Exeption) +   +   +   +   +   +   +   +   +   +  
0 Machine PI/2 +   +   +   +   +   +   +   +   +   +  
-1 Machine PI +   +   +   +   +   +   +   +   +   +  
Asin(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+/- Inf NaN +   +   +   +   +   +   +   +   +   +  
|x|>1 NaN (Raise Invalid Exeption) +   +   +   +   +   +   +   +   +   +  
1 Machine PI/2 +   +   +   +   +   +   +   +   +   +  
-1 Machine - PI/2 +   +   +   +   +   +   +   +   +   +  
Atan(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf PI/2 +   +   +   +   +   +   +   +   +   +  
- Inf - PI/2 +   +   +   +   +   +   +   +   +   +  
Atan2 x=-Inf, y=-Inf -3*PI/4 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y pos. finite -PI/2 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y=0 -PI/2 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y=+Inf -PI/4 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y pos. finite -PI/2 +   +   +   +   +   +   +   +   +   +  
x=-Inf, y=NaN NaN +   +   +   +   +   +   +   +   +   +  
x neg. finite, y=-Inf PI +   +   +   +   +   +   +   +   +   +  
x neg. finite, y=0 PI/2 +   +   +   +   +   +   +   +   +   +  
x neg. finite, y=+Inf 0 +   +   +   +   +   +   +   +   +   +  
x neg. finite, y=NaN NaN +   +   +   +   +   +   +   +   +   +  
Cosh(x) 0 1 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN +   +   +   +   +   +   +   +   +   +  
+ Inf Inf +   +   +   +   +   +   +   +   +   +  
- Inf Inf +   +   +   +   +   +   +   +   +   +  
x> Precision`s Overflow Threshold + Inf (Raise Owerflow Exeption) +   +   +   +   +   +   +   +   +   +  
x< Negative Overflow Threshold + Inf (Raise Owerflow Exeption) +   +   +   +   +   +   +   +   +   +  
Sinh(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN +   +   +   +   +   +   +   +   +   +  
+ Inf Inf +   +   +   +   +   +   +   +   +   +  
- Inf - Inf +   +   +   +   +   +   +   +   +   +  
x> Precision`s OverflowThreshold + Inf (Raise Owerflow Exeption) +   +   +   +   +   +   +   +   +   +  
x< Negative Overflow Threshold - Inf (Raise Owerflow Exeption) +   +   +   +   +   +   +   +   +   +  
Tanh(x) 0 0 +   +   +   +   +   +   +   +   +   +  
+/- Inf +/- 1 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN +   +   +   +   +   +   +   +   +   +  
Acosh(x) 1 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption forSnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf + Inf +   +   +   +   +   +   +   +   +   +  
x<1 NaN +   +   +   +   +   +   +   +   +   +  
Asinh(x) 0 0 +   +   +   +   +   +   +   +   +   +  
NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf + Inf +   +   +   +   +   +   +   +   +   +  
- Inf - Inf +   +   +   +   +   +   +   +   +   +  
Erf(x) NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf + 1 +   +   +   +   +   +   +   +   +   +  
- Inf - 1 +   +   +   +   +   +   +   +   +   +  
Erfc(x) NaN (Both QnaN and SNaN) NaN (Raise Invalid Exeption for SnaN) +   +   +   +   +   +   +   +   +   +  
+ Inf + 1 +   +   +   +   +   +   +   +   +   +  
- Inf - 1 +   +   +   +   +   +   +   +   +   +  


Notes:
1) Blank cells - low accuracy version is equal to high accuracy version
2) "Default" means X87 code for all IA-32 processors

Legal Information

Copyright © 2000-2004, Intel Corporation, All Rights Reserved.