void mxv_c ( ConstSpiceDouble m1 [3][3],
ConstSpiceDouble vin [3],
SpiceDouble vout[3] )
Multiply a 3x3 double precision matrix with a 3-dimensional
double precision vector.
None.
MATRIX, VECTOR
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
m1 I 3x3 double precision matrix.
vin I 3-dimensional double precision vector.
vout O 3-dimensinoal double precision vector. vout is
the product m1*vin.
m1 is an arbitrary 3x3 double precision matrix.
vin is an arbitrary 3-dimensional double precision vector.
vout is a 3-dimensional double precision vector. vout is
the product m1 * v. vout may overwrite vin.
None.
Error free.
None.
The intermediate results of the operation performed by this routine
are buffered in a temporary vector which is later moved to the output
vector. Thus vout can be actually be vin if desired without
interfering with the computation.
Let
m1 = | 0. 1. 0. | and vin = | 1. |
| | | |
| -1. 0. 0. | | 2. |
| | | |
| 0. 0. 1. | | 3. |
Then the call
mxv_c ( m1, vin, vout );
produces the vector
vout = | 2. |
| |
| -1. |
| |
| 3. |
The user is responsible for checking the magnitudes of the
elements of matrix and vin so that a floating point overflow does
not occur.
None.
Ed Wright (JPL)
W.M. Owen (JPL)
-CSPICE Version 1.0.0, 16-APR-1999 (EDW)
matrix times 3-dimensional vector
Link to routine mxv_c source file mxv_c.c
|