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

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     VNORMG ( Vector norm, general dimension )

     DOUBLE PRECISION FUNCTION VNORMG ( V1, NDIM )

Abstract

     Compute the magnitude of a double precision vector of arbitrary
     dimension.

Required_Reading

     None.

Keywords

     VECTOR

Declarations

     IMPLICIT NONE

     INTEGER            NDIM
     DOUBLE PRECISION   V1   ( NDIM )

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     V1         I   Vector whose magnitude is to be found.
     NDIM       I   Dimension of V1.

     The function returns the magnitude of V1.

Detailed_Input

     V1       is any double precision vector of arbitrary dimension.

     NDIM     is the dimension of the input vector V1.

Detailed_Output

     The function returns the magnitude of V1 calculated in a
     numerically stable way.

Parameters

     None.

Exceptions

     Error free.

Files

     None.

Particulars

     VNORMG finds the component of V1 whose magnitude is the largest.
     If the absolute magnitude of that component indicates that a
     numeric overflow would occur when it is squared, or if it
     indicates that an underflow would occur when squared (falsely
     giving a magnitude of zero) then the following expression is
     used:

        VNORMG = V1MAX * MAGNITUDE OF [ (1/V1MAX)*V1 ]

     Otherwise a simpler expression is used:

        VNORMG = MAGNITUDE OF [ V1 ]

     Beyond the logic described above, no further checking of the
     validity of the input is performed.

Examples

     The numerical results shown for these examples may differ across
     platforms. The results depend on the SPICE kernels used as
     input, the compiler and supporting libraries, and the machine
     specific arithmetic implementation.

     1) Define a four-dimensional vector and calculate its magnitude.

        Example code begins here.


              PROGRAM VNORMG_EX1
              IMPLICIT NONE

        C
        C     SPICELIB functions
        C
              DOUBLE PRECISION      VNORMG

        C
        C     Local parameters.
        C
              INTEGER               NDIM
              PARAMETER           ( NDIM   = 4 )

        C
        C     Local variables.
        C
              DOUBLE PRECISION      V1 ( NDIM )

              DATA                  V1 / 12.3D0, -4.32D0,
             .                           76.0D0,  1.87D0 /

        C
        C     Compute the magnitude of V1
        C
              WRITE(*,*) 'Magnitude of v1: ', VNORMG ( V1, NDIM )

              END


        When this program was executed on a Mac/Intel/gfortran/64-bit
        platform, the output was:


         Magnitude of v1:    77.132673362201047


     2) The following table show the correlation between various input
        vectors V1 and VNORMG:

           NDIM    V1(NDIM)                          VNORMG
           -------------------------------------------------
            1      (-7.0D20)                          7.D20
            3      (1.D0, 2.D0, 2.D0)                 3.D0
            4      (3.D0, 3.D0, 3.D0, 3.D0)           6.D0
            5      (5.D0, 12.D0, 0.D0, 0.D0, 0.D0)   13.D0
            3      (-5.D-17, 0.D0, 12.D-17)          13.D-17

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     J. Diaz del Rio    (ODC Space)
     W.M. Owen          (JPL)
     W.L. Taber         (JPL)

Version

    SPICELIB Version 1.1.0, 06-JUL-2021 (JDR)

        Edited the header comments to comply with NAIF standard. Added
        complete code example.

        Added IMPLICIT NONE statement.

    SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)

        Comment section for permuted index source lines was added
        following the header.

    SPICELIB Version 1.0.0, 31-JAN-1990 (WMO)
Fri Dec 31 18:37:05 2021