************************************************************************
*                               BEGIN                                  *
*                                                                      *
*           Definitions of NUM_ DOUBLE PRECISION functions             *
*           ----------------------------------------------             *
*                                                                      *
*                               BEGIN                                  *
************************************************************************
*
*    Authors :
*     R.F. Warren-Smith (DUVAD::RFWS)
*
*    History :
*     16-AUG-1988:  Original version (DUVAD::RFWS)
*    endhistory
*
 
 
*******************************************************
*   Arithmetic between two DOUBLE PRECISION numbers   *
*******************************************************

 
*   Add.
      NUM_ADDD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 + NUM_ARGD2
 
*   Subtract.
      NUM_SUBD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 - NUM_ARGD2
 
*   Floating multiply.
      NUM_MULD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 * NUM_ARGD2
 
*   Floating divide.
      NUM_DIVD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 / NUM_ARGD2
 
*   Integer divide.
      NUM_IDVD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          AINT( NUM_ARGD1 / NUM_ARGD2 )
 
*   Raise to power.
      NUM_PWRD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 ** NUM_ARGD2
 

 
************************************************************************
*   DOUBLE PRECISION functions with a single DOUBLE PRECISION argument *
************************************************************************

 
*   Negate argument.
      NUM_NEGD( NUM_ARGD ) = - NUM_ARGD
 
*   Square root.
      NUM_SQRTD( NUM_ARGD ) = SQRT( NUM_ARGD )
 
*   Natural logarithm (base e).
      NUM_LOGD( NUM_ARGD ) = LOG( NUM_ARGD )
 
*   Common logarithm (base 10).
      NUM_LG10D( NUM_ARGD ) = LOG10( NUM_ARGD )
 
*   Exponential function.
      NUM_EXPD( NUM_ARGD ) = EXP( NUM_ARGD )
 
*   Sine function (argument in radians).
      NUM_SIND( NUM_ARGD ) = SIN( NUM_ARGD )
 
*   Cosine function (argument in radians).
      NUM_COSD( NUM_ARGD ) = COS( NUM_ARGD )
 
*   Tangent function (argument in radians).
      NUM_TAND( NUM_ARGD ) = TAN( NUM_ARGD )
 
*   Sine function (argument in degrees).
      NUM_SINDD( NUM_ARGD ) = SIN( NUM_ARGD / 57.295779513082323 )
 
*   Cosine function (argument in degrees).
      NUM_COSDD( NUM_ARGD ) = COS( NUM_ARGD / 57.295779513082323 )
 
*   Tangent function (argument in degrees).
      NUM_TANDD( NUM_ARGD ) = TAN( NUM_ARGD / 57.295779513082323)
 
*   Inverse sine function (result in radians).
      NUM_ASIND( NUM_ARGD ) = ASIN( NUM_ARGD )
 
*   Inverse cosine function (result in radians).
      NUM_ACOSD( NUM_ARGD ) = ACOS( NUM_ARGD )
 
*   Inverse tangent function (result in radians).
      NUM_ATAND( NUM_ARGD ) = ATAN( NUM_ARGD )
 
*   Inverse sine function (result in degrees).
      NUM_ASNDD( NUM_ARGD ) = 57.295779513082323 * ASIN( NUM_ARGD )
 
*   Inverse cosine function (result in degrees).
      NUM_ACSDD( NUM_ARGD ) = 57.295779513082323 * ACOS( NUM_ARGD )
 
*   Inverse tangent function (result in degrees).
      NUM_ATNDD( NUM_ARGD ) = 57.295779513082323 * ATAN( NUM_ARGD )
 
*   Hyperbolic sine function.
      NUM_SINHD( NUM_ARGD ) = SINH( NUM_ARGD )
 
*   Hyperbolic cosine function.
      NUM_COSHD( NUM_ARGD ) = COSH( NUM_ARGD )
 
*   Hyperbolic tangent function.
      NUM_TANHD( NUM_ARGD ) = TANH( NUM_ARGD )
 
*   Absolute (positive) value.
      NUM_ABSD( NUM_ARGD ) = ABS( NUM_ARGD )
 
*   Nearest integer.
      NUM_NINTD( NUM_ARGD ) = ANINT( NUM_ARGD )
 
*   Truncation to integer.
      NUM_INTD( NUM_ARGD ) = AINT( NUM_ARGD )
 

 
*********************************************************************
*  DOUBLE PRECISION functions with two DOUBLE PRECISION arguments   *
*********************************************************************

 
*   Minimum of two numbers.
      NUM_MIND( NUM_ARGD1, NUM_ARGD2 ) =
     :                          MIN( NUM_ARGD1, NUM_ARGD2 )
 
*   Maximum of two numbers.
      NUM_MAXD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          MAX( NUM_ARGD1, NUM_ARGD2 )
 
*   Fortran DIM (positive difference) function.
      NUM_DIMD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          DIM( NUM_ARGD1, NUM_ARGD2 )
 
*   Fortran MOD (remainder) function.
      NUM_MODD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          MOD( NUM_ARGD1, NUM_ARGD2 )
 
*   Fortran SIGN (transfer of sign) function.
      NUM_SIGND( NUM_ARGD1, NUM_ARGD2 ) =
     :                          SIGN( NUM_ARGD1, NUM_ARGD2 )
 
*   Fortran ATAN2 (inverse tangent with two arguments) function (result
*   in radians).
      NUM_ATN2D( NUM_ARGD1, NUM_ARGD2 ) =
     :                          ATAN2( NUM_ARGD1, NUM_ARGD2 )
 
*   Fortran ATAN2 (inverse tangent with two arguments) function (result
*   in degrees).
      NUM_AT2DD( NUM_ARGD1, NUM_ARGD2 ) =
     :              57.295779513082323 * ATAN2( NUM_ARGD1, NUM_ARGD2 )

 
 
****************************************************************
*   Logical functions comparing two DOUBLE PRECISION numbers   *
****************************************************************
 

*   Equality.
      NUM_EQD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .EQ. NUM_ARGD2
 
*   Inequality.
      NUM_NED( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .NE. NUM_ARGD2
 
*   Greater than.
      NUM_GTD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .GT. NUM_ARGD2
 
*   Greater than or equal.
      NUM_GED( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .GE. NUM_ARGD2
 
*   Less than.
      NUM_LTD( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .LT. NUM_ARGD2
 
*   Less than or equal.
      NUM_LED( NUM_ARGD1, NUM_ARGD2 ) =
     :                          NUM_ARGD1 .LE. NUM_ARGD2
 

 
************************************************************************
*                               END                                    *
*                                                                      *
*           Definitions of NUM_ DOUBLE PRECISION functions             *
*                                                                      *
*                               END                                    *
************************************************************************
