void invort_c ( ConstSpiceDouble m [3][3],
SpiceDouble mit[3][3] )
Given a matrix, construct the matrix whose rows are the
columns of the first divided by the length squared of the
the corresponding columns of the input matrix.
None.
MATRIX
Variable I/O Description
-------- --- --------------------------------------------------
m I A 3x3 matrix.
mit I m after transposition and scaling of rows.
m is a 3x3 matrix.
mit is the matrix obtained by transposing m and dividing
the rows by squares of their norms.
None.
1) If any of the columns of m have zero length, the error
SPICE(ZEROLENGTHCOLUMN) will be signaled.
2) If any column is too short to allow computation of the
reciprocal of its length without causing a floating
point overflow, the error SPICE(COLUMNTOOSMALL) will
be signalled.
None.
Suppose that m is the matrix
- -
| A*u B*v C*w |
| 1 1 1 |
| |
| A*u B*v C*w |
| 2 2 2 |
| |
| A*u B*v C*w |
| 3 3 3 |
- -
where the vectors (u , u , u ), (v , v , v ), and (w , w , w )
1 2 3 1 2 3 1 2 3
are unit vectors. This routine produces the matrix:
- -
| a*u a*u a*u |
| 1 2 3 |
| |
| b*v b*v b*v |
| 1 2 3 |
| |
| c*w c*w c*w |
| 1 2 3 |
- -
where a = 1/A, b = 1/B, and c = 1/C.
Suppose that you have a matrix m whose columns are orthogonal
and have non-zero norm (but not necessarily norm 1). Then the
routine invort_c can be used to construct the inverse of m:
#include "SpiceUsr.h"
.
.
.
invort_c ( m, invers );
This method is numerically more robust than calling the
routine invert_c.
None.
None.
W.L. Taber (JPL)
N.J. Bachman (JPL)
-CSPICE Version 1.0.0, 02-JAN-2002 (WLT) (NJB)
Transpose a matrix and invert the lengths of the rows
Invert a pseudo orthogonal matrix
Link to routine invort_c source file invort_c.c
|