Special Value Specification for the VML

Function

Input Argument

Result

Current state

Default processor

Pentium® III processor

Pentium® 4 processor

Itanium® processor

float

double

float

double

float

double

float

double

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 Invalid Exeption)

+

-

+

 

+

-

+

 

+

-

+

 

+

 

+

 

x<0

NaN (Raise Invalid Exeption)

+

-

+

 

+

-

+

 

+

-

+

 

+

 

+

 

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 for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+/- Inf

+/- Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

InvCbrt(x)

+/- 0

+/- Inf (Raise DZ Exeption)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

NaN (Both QnaN and SNaN)

NaN (Raise Invalid Exeption for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+/- Inf

+/- 0

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

Pow(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 finite non-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 for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

x> Precision`s Overflow Threshold

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 for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

0

-Inf (Raise DZ Exeption)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

x<0

NaN

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+ Inf

+ Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

- Inf

NaN (Raise Invalid Exeption)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

Cos(x)

0

1

+

 

+

 

+

+

+

 

+

+

+

+

+

 

+

 

NaN (Both QnaN and SNaN)

NaN (Raise Invalid Exeption for SnaN)

+

 

+

 

+

+

+

 

+

+

+

+

+

 

+

 

+/- 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 Overflow Threshold

+ 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 for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+ Inf

+ Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

x<1

NaN

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

Asinh(x)

0

0

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

NaN (Both QnaN and SNaN)

NaN (Raise Invalid Exeption for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+ Inf

+ Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

- Inf

- Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

Atanh(x)

0

0

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

NaN (Both QnaN and SNaN)

NaN (Raise Invalid Exeption for SnaN)

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+1

+ Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

-1

- Inf

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 

|x|>1

NaN

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+

 


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

Intel, Pentium, Pentium III, Pentium 4, and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

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