Index Page vzerog_c

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

Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input | Detailed_Output Parameters Exceptions Files Particulars Examples | Restrictions Literature_References Author_and_Institution Version Index_Entries

#### Procedure

       SpiceBoolean vzerog_c ( ConstSpiceDouble * v, SpiceInt ndim )

#### Abstract

       Indicate whether a general-dimensional vector is the zero vector.

#### Required_Reading

       None.

#### Keywords

       MATH
       VECTOR

#### Brief_I/O

       Variable  I/O  Description
       --------  ---  --------------------------------------------------
       v          I   Vector to be tested.
       ndim       I   Dimension of v.

       The function returns the value SPICETRUE if and only if v is the
       zero vector.

#### Detailed_Input

       v,
       ndim           are, respectively, a vector and its dimension.

#### Detailed_Output

       The function returns the value SPICETRUE if and only if v is the
       zero vector.

#### Parameters

       None.

#### Exceptions

       Error free.

       1)   When ndim is non-positive, this function returns the value
            SPICEFALSE  (A vector of non-positive dimension cannot be the
            zero vector.)

#### Files

       None.

#### Particulars

       This function has the same truth value as the logical expression

          ( vnormg_c ( v, ndim )  ==  0. )

       Replacing the above expression by

          vzerog_c ( v, ndim );

       has several advantages:  the latter expresses the test more
       clearly, looks better, and doesn't go through the work of scaling,
       squaring, taking a square root, and re-scaling (all of which
       vnormg_c must do) just to find out that a vector is non-zero.

       A related function is vzero_c, which accepts three-dimensional
       vectors.

#### Examples

       1)  When testing whether a vector is the zero vector, one
           normally constructs tests like

              if (  vnormg_c ( v, ndim )  ==  0.  )
                 {
                          .
                          .
                          .

           These can be replaced with the code

              if (  vzerog_c ( v, ndim )  )
                 {
                          .
                          .
                          .

       2)  Make sure that a `unit' quaternion is non-zero before
           converting it to a rotation matrix.

              if (  vzerog_c ( q, 4 )  )
                 {

                 [ handle error ]

              else
                 {
                 vhatg_c ( q, 4, q )
                 q2m_c   ( q, m )
                          .
                          .
                          .

#### Restrictions

       None.

#### Literature_References

       None.

#### Author_and_Institution

       N.J. Bachman    (JPL)
       I.M. Underwood  (JPL)
       E.D. Wright     (JPL)

#### Version

       -CSPICE Version 1.0.0, 29-JUN-1999

#### Index_Entries

       test whether an n-dimensional vector is the zero vector

#### Link to routine vzerog_c source file vzerog_c.c

    Wed Apr  5 17:54:47 2017