Special Value Specification for VML

Real Functions 

FUNCTION ARGUMENT 1 ARGUMENT 2 RESULT 1 RESULT 2 ERROR CODE EXCEPTION
v?Add   +0  +0  +0      
 +0  -0  +0      
 -0  +0  +0      
 -0  -0  -0      
 +INF  +INF  +INF      
 +INF  -INF  QNAN      INVALID
 -INF  +INF  QNAN      INVALID
 -INF  -INF  -INF      
 SNAN  any value  QNAN      INVALID
 any value  SNAN  QNAN      INVALID
 QNAN  non-SNAN  QNAN      
 non-SNAN  QNAN  QNAN      
v?Sub   +0  +0  +0      
 +0  -0  +0      
 -0  +0  -0      
 -0  -0  +0      
 +INF  +INF  QNAN      INVALID
 +INF  -INF  +INF      
 -INF  +INF  -INF      
 -INF  -INF  QNAN      INVALID
 SNAN  any value  QNAN      INVALID
 any value  SNAN  QNAN      INVALID
 QNAN  non-SNAN  QNAN      
 non-SNAN  QNAN  QNAN      
v?Sqr     +0    +0      
 -0    +0      
 +INF    +INF      
 -INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Mul   +0  +0  +0      
 +0  -0  -0      
 -0  +0  -0      
 -0  -0  +0      
 +0  +INF  QNAN      INVALID
 +0  -INF  QNAN      INVALID
 -0  +INF  QNAN      INVALID
 -0  -INF  QNAN      INVALID
 +INF  +0  QNAN      INVALID
 +INF  -0  QNAN      INVALID
 -INF  +0  QNAN      INVALID
 -INF  -0  QNAN      INVALID
 +INF  +INF  +INF      
 +INF  -INF  -INF      
 -INF  +INF  -INF      
 -INF  -INF  +INF      
 SNAN  any value  QNAN      INVALID
 any value  SNAN  QNAN      INVALID
 QNAN  non-SNAN  QNAN      
 non-SNAN  QNAN  QNAN      
v?Abs     +0    +0      
 -0    +0      
 +INF    +INF      
 -INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN      INVALID
v?Inv     +0    +INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 +INF    +0      
 -INF    -0      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Div   X > +0  +0  +INF   VML_STATUS_SING ZERODIVIDE
 X > +0   -0  -INF   VML_STATUS_SING ZERODIVIDE
 X < +0  +0  -INF   VML_STATUS_SING ZERODIVIDE
 X < +0  -0  +INF   VML_STATUS_SING ZERODIVIDE
 +0  +0  QNAN   VML_STATUS_SING  
 -0  -0  QNAN   VML_STATUS_SING  
 X > +0  +INF  +0      
 X > +0  -INF  -0      
 +INF +INF  QNAN      
 -INF  -INF  QNAN      
 QNAN QNAN  QNAN      
 SNAN SNAN  QNAN     INVALID
v?Sqrt     X < +0    QNAN   VML_STATUS_ERRDOM INVALID
 +0    +0      
 -0    -0      
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?InvSqrt   X < +0    QNAN   VML_STATUS_ERRDOM INVALID
 +0    +INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +0      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Cbrt    +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?InvCbrt  +0    +INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 +INF    +0      
 -INF    -0      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Pow2o3  +0    +0      
 -0    +0      
 +INF    +INF      
 -INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN      INVALID
v?Pow3o2  X < +0    QNAN   VML_STATUS_ERRDOM  INVALID
 +0    +0      
 -0    -0      
 -INF    QNAN   VML_STATUS_ERRDOM  INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN      INVALID
v?Pow, v?Powx  +0  neg. odd integer  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 -0  neg. odd integer  -INF   VML_STATUS_ERRDOM ZERODIVIDE
 +0  neg. even integer  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 -0  neg. even integer  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 +0  neg. non-integer  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 -0  neg. non-integer  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 +0  pos. odd integer  +0      
 -0  pos. odd integer  -0      
 +0  pos. even integer  +0      
 -0  pos. even integer  +0      
 +0  pos. non-integer  +0      
 -0  pos. non-integer  +0      
 -1  +INF  +1      
 -1  -INF  +1      
 +1  any value  +1      
 +1  +0  +1      
 +1  -0  +1      
 +1  +INF  +1      
 +1  -INF  +1      
 +1  QNAN  +1      
 any value  +0  +1      
 +0  +0  +1      
 -0  +0  +1      
 +INF  +0  +1      
 -INF  +0  +1      
 QNAN  +0  +1      
 any value  -0  +1      
 +0  -0  +1      
 -0  -0  +1      
 +INF  -0  +1      
 -INF  -0  +1      
 QNAN  -0  +1      
  X < +0  non-integer  QNAN   VML_STATUS_ERRDOM INVALID
|X| < 1  -INF  +INF      
 +0  -INF  +INF   VML_STATUS_ERRDOM ZERODIVIDE
 -0  -INF  +INF   VML_STATUS_ERRDOM ZERODIVIDE
|X| > 1  -INF  +0      
 +INF  -INF  +0      
 -INF  -INF  +0      
|X| < 1  +INF  +0      
 +0  +INF  +0      
 -0  +INF  +0      
|X| > 1  +INF  +INF      
 +INF  +INF  +INF      
 -INF  +INF  +INF      
 -INF  neg. odd integer  -0      
 -INF  neg. even integer  +0      
 -INF  neg. non-integer  +0      
 -INF  pos. odd integer  -INF      
 -INF  pos. even integer  +INF      
 -INF  pos. non-integer  +INF      
 +INF   X < +0  +0      
 +INF   X > +0  +INF      
 QNAN  QNAN  QNAN      
 QNAN  SNAN  QNAN     INVALID
 SNAN  QNAN  QNAN     INVALID
 SNAN  SNAN  QNAN     INVALID
v?Hypot     +0  +0  +0      
 -0  -0  +0      
 +INF  any value  +INF      
 any value  + INF  +INF      
 SNAN  any value  QNAN     INVALID
 any value  SNAN  QNAN     INVALID
 QNAN  any value  QNAN      
 any value  QNAN  QNAN      
v?Exp     +0    +1      
 -0    +1      
 X > overflow threshold    +INF   VML_STATUS_OVERFLOW OVERFLOW
 X < underflow threshold    +0   VML_STATUS_UNDERFLOW UNDERFLOW
 +INF    +INF      
 -INF    +0      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Expm1  +0    +0      
 -0    -0      
 X > overflow threshold    +INF   VML_STATUS_OVERFLOW  OVERFLOW
 +INF    +INF      
 -INF    -1      
 QNAN    QNAN      
 SNAN    QNAN      INVALID
v?Ln      +1    +0      
   X < +0    QNAN   VML_STATUS_ERRDOM INVALID
 +0    -INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Log10   +1    +0      
  X < +0    QNAN   VML_STATUS_ERRDOM INVALID
 +0    -INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Log1p   -1    -INF   VML_STATUS_SING ZERODRIVE
  X < -1    QNAN   VML_STATUS_ERRDOM INVALID
 +0    +0      
 -0    -0      
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Cos     +0    +1      
 -0    +1      
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Sin     +0    +0      
 -0    -0      
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?SinCos  +0    +0  +1    
 -0    -0  +1    
 +INF    QNAN  QNAN VML_STATUS_ERRDOM INVALID
 -INF    QNAN  QNAN VML_STATUS_ERRDOM INVALID
 QNAN    QNAN  QNAN    
 SNAN    QNAN  QNAN   INVALID
v?Tan     +0    +0      
 -0    -0      
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Acos    +0    +Pi/2      
 -0    +Pi/2      
 +1    +0      
 -1    +Pi      
 |X| > 1    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Asin    +0    +0      
 -0    -0      
 +1    +Pi/2      
 -1    -Pi/2      
 |X| > 1    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Atan    +0    +0      
 -0    -0      
 +INF    +Pi/2      
 -INF    -Pi/2      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Atan2   -INF  -INF  -3*Pi/4      
 -INF   X < +0  -Pi/2      
 -INF  -0  -Pi/2      
 -INF +0  -Pi/2      
 -INF X > +0  -Pi/2      
 -INF  +INF  -Pi/4      
   X < +0  -INF  -Pi      
   X < +0  -0  -Pi/2      
  X < +0 +0  -Pi/2      
   X < +0  +INF  -0      
 -0  -INF  -Pi      
 -0  X < +0  -Pi      
 -0  -0  -Pi      
 -0 +0  -0      
 -0 X > +0  -0      
 -0  +INF  -0      
+0  -INF  +Pi      
+0  X < +0  +Pi      
+0  -0  +Pi      
+0 +0 +0      
+0  X > +0 +0      
+0  +INF +0      
 X > +0  -INF  +Pi      
 X > +0  -0  +Pi/2      
 X > +0 +0  +Pi/2      
 X > +0  +INF +0      
 +INF  -INF  +3*Pi/4      
 +INF   X < +0  +Pi/2      
 +INF  -0  +Pi/2      
 +INF +0  +Pi/2      
 +INF  X > +0  +Pi/2      
 +INF  +INF  +Pi/4      
 X > +0  QNAN  QNAN      
 X > +0  SNAN  QNAN     INVALID
 QNAN  X > +0  QNAN      
 SNAN  X > +0  QNAN     INVALID
 QNAN  QNAN  QNAN      
 QNAN  SNAN  QNAN     INVALID
 SNAN  QNAN  QNAN     INVALID
 SNAN  SNAN  QNAN     INVALID
v?Cosh    +0    +1      
 -0    +1      
 X > overflow threshold    +INF   VML_STATUS_OVERFLOW OVERFLOW
 X < underflow threshold    +INF   VML_STATUS_OVERFLOW OVERFLOW
 +INF    +INF      
 -INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Sinh    +0    +0      
 -0     -0      
X > overflow threshold    +INF   VML_STATUS_OVERFLOW OVERFLOW
X < underflow threshold    -INF   VML_STATUS_OVERFLOW OVERFLOW
 +INF    +INF      
 -INF    -INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Tanh    +0    +0      
 -0     -0      
 +INF    +1      
 -INF     -1      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Acosh   +1    +0      
 X < +1    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    +INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Asinh   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Atanh   +1    +INF   VML_STATUS_SING ZERODIVIDE
 -1    -INF   VML_STATUS_SING ZERODIVIDE
 |X| > 1    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Erf     +INF    +1      
 -INF    -1      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Erfc    X > underflow threshold    +0   VML_STATUS_UNDERFLOW UNDERFLOW
 +INF    +0      
 -INF   + 2      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?ErfInv    +0    +0      
 -0    -0      
 +1    +INF   VML_STATUS_SING ZERODIVIDE
 -1    -INF   VML_STATUS_SING ZERODIVIDE
 |X| > 1    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?ErfcInv    +1    +0      
 +2    -INF   VML_STATUS_SING ZERODIVIDE
 -0    +INF   VML_STATUS_SING ZERODIVIDE
 +0    +INF   VML_STATUS_SING ZERODIVIDE
 X < -0    QNAN   VML_STATUS_ERRDOM INVALID
 X > +2    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?CdfNorm    X < underflow threshold    +0   VML_STATUS_UNDERFLOW UNDERFLOW
 +INF    +1      
 -INF   +0      
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?CdfNormInv    +0.5    +0      
 +1    +INF   VML_STATUS_SING ZERODIVIDE
 -0    -INF   VML_STATUS_SING ZERODIVIDE
 +0    -INF   VML_STATUS_SING ZERODIVIDE
 X < -0    QNAN   VML_STATUS_ERRDOM INVALID
 X > +1    QNAN   VML_STATUS_ERRDOM INVALID
 +INF    QNAN   VML_STATUS_ERRDOM INVALID
 -INF    QNAN   VML_STATUS_ERRDOM INVALID
 QNAN    QNAN      
 SNAN    QNAN     INVALID
v?Floor   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?Ceil   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?Trunc   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?Round   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?NearbyInt   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?Rint   +0    +0      
 -0    -0      
 +INF    +INF      
 -INF    -INF      
 SNAN    QNAN     INVALID
 QNAN    QNAN      
v?Modf   +0    +0  +0    
 -0    -0  -0    
 +INF    +INF  +0    
 -INF    -INF  -0    
 SNAN    QNAN  QNAN   INVALID
 QNAN    QNAN  QNAN    


Notes:

1) ARGUMENT 2 and RESULT 2 columns are only for the functions with two arguments and two results correspondingly.

2) The ? sign in a function name indicates the data type.


 

Legal Information

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