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