Index Page ducrss_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

       void ducrss_c ( ConstSpiceDouble s1  [6],
                       ConstSpiceDouble s2  [6],
                       SpiceDouble      sout[6] )

#### Abstract

       Compute the unit vector parallel to the cross product of
       two 3-dimensional vectors and the derivative of this unit vector.

#### Required_Reading

       None.

#### Keywords

       VECTOR
       DERIVATIVE

#### Brief_I/O

       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       s1        I   Left hand state for cross product and derivative.
       s2        I   Right hand state for cross product and derivative.
       sout      O   Unit vector and derivative of the cross product.

#### Detailed_Input

       s1       This may be any state vector.  Typically, this
                might represent the apparent state of a planet or the
                Sun, which defines the orientation of axes of
                some coordinate system.

       s2       Any state vector.

#### Detailed_Output

       sout     This variable represents the unit vector parallel to the
                cross product of the position components of 's1' and 's2'
                and the derivative of the unit vector.

                If the cross product of the position components is
                the zero vector, then the position component of the
                output will be the zero vector.  The velocity component
                of the output will simply be the derivative of the
                cross product of the position components of 's1' and 's2'.

                'sout' may overwrite 's1' or 's2'.

#### Parameters

       None.

#### Exceptions

       Error free.

       1) If the position components of 's1' and 's2' cross together to
          give a zero vector, the position component of the output
          will be the zero vector.  The velocity component of the
          output will simply be the derivative of the cross product
          of the position vectors.

       2) If 's1' and 's2' are large in magnitude (taken together,
          their magnitude surpasses the limit allowed by the
          computer) then it may be possible to generate a
          floating point overflow from an intermediate
          computation even though the actual cross product and
          derivative may be well within the range of double
          precision numbers.

#### Files

       None.

#### Particulars

       ducrss_c calculates the unit vector parallel to the cross product
       of two vectors and the derivative of that unit vector.
       The results of the computation may overwrite either of the
       input vectors.

#### Examples

       One often constructs non-inertial coordinate frames from
       apparent positions of objects.  However, if one wants to convert
       states in this non-inertial frame to states in an inertial
       reference frame, the derivatives of the axes of the non-inertial
       frame are required.  For example consider an Earth meridian
       frame defined as follows.

          The z-axis of the frame is defined to be the vector
          normal to the plane spanned by the position vectors to the
          apparent Sun and to the apparent body as seen from an observer.

          Let 'sun' be the apparent state of the Sun and let 'body' be the
          apparent state of the body with respect to the observer.  Then
          the unit vector parallel to the z-axis of the Earth meridian
          system and its derivative are given by the call:

          ducrss_c ( sun, body, zzdot );

#### Restrictions

       No checking of 's1' or 's2' is done to prevent floating point
       overflow. The user is required to determine that the magnitude
       of each component of the states is within an appropriate range
       so as not to cause floating point overflow. In almost every case
       there will be no problem and no checking actually needs to be
       done.

#### Literature_References

       None.

#### Author_and_Institution

       N.J. Bachman    (JPL)
       W.L. Taber      (JPL)
       E.D. Wright     (JPL)

#### Version

       -CSPICE Version 1.0.0, 23-NOV-2009 (EDW)

#### Index_Entries

       Compute a unit cross product and its derivative

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

    Wed Apr  5 17:54:32 2017