Index Page
cspice_hx2dp
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Abstract
I/O
Examples
Particulars
Required Reading
Version
Index_Entries

Abstract


   CSPICE_HX2DP converts a string representing a double precision number in a
   base 16 ``scientific notation'' into its equivalent double precision number.

   For important details concerning this module's function, please refer to
   the CSPICE routine hx2dp_c.

I/O

   
   Given:

      string   a character string containing a base 16 ``scientific
               notation'' representation of a double precision number
               which is to be converted to a double precision number,
               e.g.:
   
                  '2A^3' = ( 2/16 + 10/( 16**2 ) ) * 16**3 = 672.0
   
               and
   
                  '-B^1' = - ( 11/16 ) * 16**1             = -11.0
   
               The following table describes the character set used to
               represent the hexadecimal digits and their corresponding
               values.
   
               Character     Value         Character     Value
               ---------    -------        ---------    -------
                 '0'         0.0D0           '8'         8.0D0
                 '1'         1.0D0           '9'         9.0D0
                 '2'         2.0D0         'A','a'      10.0D0
                 '3'         3.0D0         'B','b'      11.0D0
                 '4'         4.0D0         'C','c'      12.0D0
                 '5'         5.0D0         'D','d'      13.0D0
                 '6'         6.0D0         'E','e'      14.0D0
                 '7'         7.0D0         'F','f'      15.0D0
   
               The caret, or hat, character, '^', is used to
               distinguish the exponent.
   
               The plus sign, '+', and the minus sign, '-', are used,
               and they have their usual meanings.
   
               A base 16 ``scientific notation'' character string which
               is to be parsed by this routine should consist of a sign,
               '+' or '-' (the plus sign is optional for nonnegative
               numbers), followed immediately by a contiguous sequence
               of hexadecimal digits, the exponent character, and a
               signed hexadecimal exponent. The exponent is required,
               but the sign is optional for a nonnegative exponent.
   
               A number in base 16 ``scientific notation'' consists of
               a contiguous sequence of characters with one of the
               following formats:
   
                   (1)   h h h h  ... h ^H H  ... H
                          1 2 3 4      n  1 2      m
   
                   (2)   +h h h h  ... h ^H H  ... H
                           1 2 3 4      n  1 2      m
   
                   (3)   -h h h h  ... h ^H H  ... H
                           1 2 3 4      n  1 2      m
   
                   (4)    h h h h  ... h ^+H H  ... H
                           1 2 3 4      n   1 2      m
   
                   (5)   +h h h h  ... h ^+H H  ... H
                           1 2 3 4      n   1 2      m
   
                   (6)   -h h h h  ... h ^+H H  ... H
                           1 2 3 4      n   1 2      m
   
                   (7)   h h h h  ... h ^-H H  ... H
                          1 2 3 4      n   1 2      m
   
                   (8)   +h h h h  ... h ^-H H  ... H
                           1 2 3 4      n   1 2      m
   
                   (9)   -h h h h  ... h ^-H H  ... H
                           1 2 3 4      n   1 2      m
   
               where
   
                  h  and H  denote hexadecimal digits;
                   i      j
   
                  '^'         denotes exponentiation;
   
               and
   
                  + and - have their usual interpretations.
   
               'string' may have leading and trailing blanks, but blanks
               embedded within the significant portion of the input
               string are not allowed.

   the call:

      cspice_hx2dp, string, number, error errmsg
   
   returns:

      number   the scalar double precision number corresponding to 'string'. 
               The value of this argument is not changed if an error occurs 
               while parsing the input string.
   
      error    a scalar logical flag which indicates whether an error 
               occurred while attempting to parse 'number' from the input
               character string 'string'. 'error' will have the value
               true if an error occurs. It will have the value
               false otherwise.
   
      errmsg   a scalar string containing a descriptive error message if 
               an error occurs while attempting to parse the number 
               'number' from the hexadecimal character string 'string', 
               blank otherwise.

Examples


   Any numerical results shown for this example may differ between
   platforms as the results depend on the SPICE kernels used as input
   and the machine specific arithmetic implementation.

   The following input and output argument values illustrate the
   action of cspice_hx2dp for various input values of 'string'. 

   Note: The hat or caret, '^', signals an exponent.

      string                  number         error   errmsg
      ----------------------  -------------  ------  ------
       89705F4136B4A8^-7            2.0D-9   false   " "
       1^1                          1.0D0    false   " "
      -1^1                         -1.0D0    false   " "
       4^3                       1024.0D0    false   " "
      -4^3                      -1024.0D0    false   " "
       7F5EB^5                 521707.0D0    false   " "
       7F5eb^5                 521707.0D0    false   " "
       7f5eb^5                 521707.0D0    false   " "
       1B^2                        27.0D0    false   " "
      +1B^2                        27.0D0    false   " "
      +1B^+2                       27.0D0    false   " "
       0^0                          0.0D0    false   " "

Particulars


   This routine will convert a character string containing a number
   in base 16 ``scientific notation'' into its equivalent double
   precision number.

   This routine is one of a pair of routines which are used to
   perform conversions between double precision numbers and
   an equivalent base 16 ``scientific notation'' character string
   representation:

      cspice_dp2hx -- Convert a double precision number into a base 16
                      ``scientific notation'' character string.

      cspice_hx2dp -- Convert a base 16 ``scientific notation''
                      character string into a double precision number.

Required Reading


   ICY.REQ

Version


   -Icy Version 1.0.0, 29-APR-2009 (EDW)

Index_Entries


   convert signed normalized hexadecimal string to d.p.
   convert encoded d.p. number to d.p. number
   convert base 16 scientific notation d.p. number
  


Wed Apr  5 17:58:01 2017