vlcom_c

Index Page vlcom_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 vlcom_c ( SpiceDouble        a,
                      ConstSpiceDouble   v1[3],
                      SpiceDouble        b,
                      ConstSpiceDouble   v2[3],
                      SpiceDouble        sum[3] )
#### Abstract
       Compute a vector linear combination of two double precision,
       3-dimensional vectors.
#### Required_Reading
       None.
#### Keywords
       VECTOR
#### Brief_I/O
       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       a          I   Coefficient of v1
       v1         I   Vector in 3-space
       b          I   Coefficient of v2
       v2         I   Vector in 3-space
       sum        O   Linear Vector Combination a*v1 + b*v2
#### Detailed_Input
       a     This double precision variable multiplies v1.
       v1    This is an arbitrary, double precision 3-dimensional
              vector.
       b     This double precision variable multiplies v2.
       v2    This is an arbitrary, double precision 3-dimensional
              vector.
#### Detailed_Output
       sum   is an arbitrary, double precision 3-dimensional vector
              which contains the linear combination a*v1 + b*v2.
#### Parameters
       None.
#### Exceptions
       Error free.
#### Files
       None
#### Particulars
       For each index from 0 to 2, this routine implements in C
       code the expression:

       sum[i] = a*v1[i] + b*v2[i]

       No error checking is performed to guard against numeric overflow.
#### Examples
       To generate a sequence of points on an ellipse with major
       and minor axis vectors major and minor, one could use the
       following code fragment

              step = twopi_c()/ n;
              ang  = 0.0;

              for ( i = 0; i < n; i++ )
                 {
                 vlcom_c ( cos(ang),major,  sin(ang),minor,  point );

                 do something with the ellipse point just constructed

                 ang = ang + step;
                 }

       As a second example, suppose that u and v are orthonormal vectors
       that form a basis of a plane. Moreover suppose that we wish to
       project a vector x onto this plane, we could use the following
       call inserts this projection into proj.

              vlcom_c ( vdot_c(x,v),v,   vdot_c(x,u),u,    proj )
#### Restrictions
       No error checking is performed to guard against numeric overflow
       or underflow.  The user is responsible for insuring that the
       input values are reasonable.
#### Literature_References
       None
#### Author_and_Institution
       W.L. Taber      (JPL)
       E.D. Wright     (JPL)
#### Version
       -CSPICE Version 1.1.0, 22-OCT-1998 (NJB)

          Made input vectors const.

       -CSPICE Version 1.0.0, 08-FEB-1998 (EDW)
#### Index_Entries
       linear combination of two 3-dimensional vectors
#### Link to routine vlcom_c source file vlcom_c.c

    Thu Apr 16 08:59:31 2009