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

 
*   Add.
      NUM_ADDI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 + NUM_ARGI2
 
*   Subtract.
      NUM_SUBI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 - NUM_ARGI2
 
*   Floating multiply.
      NUM_MULI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 * NUM_ARGI2
 
*   Floating divide.
      NUM_DIVI( NUM_ARGI1, NUM_ARGI2 ) = NUM_RTOI(
     :                          NUM_ITOR( NUM_ARGI1 ) /
     :                          NUM_ITOR( NUM_ARGI2 ) )
 
*   Integer divide.
      NUM_IDVI( NUM_ARGI1, NUM_ARGI2 ) = NUM_ARGI1 / NUM_ARGI2
 
*   Raise to power.
      NUM_PWRI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 ** NUM_ARGI2

 
 
********************************************************
*   INTEGER functions with a single INTEGER argument   *
********************************************************

 
*   Negate argument.
      NUM_NEGI( NUM_ARGI ) = - NUM_ARGI
 
*   Square root.
      NUM_SQRTI( NUM_ARGI ) = NUM_RTOI( SQRT( NUM_ITOR( NUM_ARGI ) ) )
 
*   Natural logarithm (base e).
      NUM_LOGI( NUM_ARGI ) = NUM_RTOI( LOG( NUM_ITOR( NUM_ARGI ) ) )
 
*   Common logarithm (base 10).
      NUM_LG10I( NUM_ARGI ) = NUM_RTOI( LOG10( NUM_ITOR( NUM_ARGI ) ) )
 
*   Exponential function.
      NUM_EXPI( NUM_ARGI ) = NUM_RTOI( EXP( NUM_ITOR( NUM_ARGI ) ) )
 
*   Absolute (positive) value.
      NUM_ABSI( NUM_ARGI ) = ABS( NUM_ARGI )
 
*   Nearest integer.
      NUM_NINTI( NUM_ARGI ) = NUM_ARGI
 
*   Truncation to integer.
      NUM_INTI( NUM_ARGI ) = NUM_ARGI

 
 
***************************************************
*  INTEGER functions with two INTEGER arguments   *
***************************************************

 
*   Minimum of two numbers.
      NUM_MINI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          MIN( NUM_ARGI1, NUM_ARGI2 )
 
*   Maximum of two numbers.
      NUM_MAXI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          MAX( NUM_ARGI1, NUM_ARGI2 )
 
*   Fortran DIM (positive difference) function.
      NUM_DIMI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          DIM( NUM_ARGI1, NUM_ARGI2 )
 
*   Fortran MOD (remainder) function.
      NUM_MODI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          MOD( NUM_ARGI1, NUM_ARGI2 )
 
*   Fortran SIGN (transfer of sign) function.
      NUM_SIGNI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          SIGN( NUM_ARGI1, NUM_ARGI2 )

 

*******************************************************
*   Logical functions comparing two INTEGER numbers   *
*******************************************************

 
*   Equality.
      NUM_EQI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .EQ. NUM_ARGI2
 
*   Inequality.
      NUM_NEI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .NE. NUM_ARGI2
 
*   Greater than.
      NUM_GTI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .GT. NUM_ARGI2
 
*   Greater than or equal.
      NUM_GEI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .GE. NUM_ARGI2
 
*   Less than.
      NUM_LTI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .LT. NUM_ARGI2
 
*   Less than or equal.
      NUM_LEI( NUM_ARGI1, NUM_ARGI2 ) =
     :                          NUM_ARGI1 .LE. NUM_ARGI2
 

 
************************************************************************
*                               END                                    *
*                                                                      *
*              Definitions of NUM_ INTEGER functions                   *
*                                                                      *
*                               END                                    *
************************************************************************
