Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
det_c

Table of contents
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

   det_c ( Determinant of a double precision 3x3 matrix ) 

   SpiceDouble det_c ( ConstSpiceDouble m1[3][3] )

Abstract

   Compute the determinant of a double precision 3x3 matrix.

Required_Reading

   None.

Keywords

   MATH
   MATRIX


Brief_I/O

   VARIABLE  I/O  DESCRIPTION
   --------  ---  --------------------------------------------------
   m1         I   Matrix whose determinant is to be found.

   The function returns the value of the determinant found by direct
   application of the definition of the determinant.

Detailed_Input

   m1          is any double precision, 3x3 matrix.

Detailed_Output

   The function returns the value of the determinant found by direct
   application of the definition of the determinant.

Parameters

   None.

Exceptions

   Error free.

Files

   None.

Particulars

   det_c calculates the determinant of `m1' in a single arithmetic
   expression which is, effectively, the expansion of `m1' about its
   first row. Since the calculation of the determinant involves
   the multiplication of numbers whose magnitudes are unrestricted,
   there is the possibility of floating point overflow or underflow.
   NO error checking or recovery is implemented in this routine.

Examples

   The numerical results shown for this example may differ across
   platforms. The results depend on the SPICE kernels used as
   input, the compiler and supporting libraries, and the machine
   specific arithmetic implementation.

   1) Given a 3x3 double precision matrix, compute its determinant.

      Example code begins here.


      /.
         Program det_ex1
      ./
      #include <stdio.h>
      #include "SpiceUsr.h"

      int main( )
      {

         /.
         Set `m1' and `m2'.
         ./
         SpiceDouble          m1     [3][3] = { {1.0,  2.0,  3.0},
                                                {4.0,  5.0,  6.0},
                                                {7.0,  8.0,  9.0} };

         SpiceDouble          m2     [3][3] = { {1.0,  2.0,  3.0},
                                                {0.0,  5.0,  6.0},
                                                {0.0,  0.0,  9.0} };

         /.
         Display the determinant of `m1' and `m2'.
         ./
         printf( "Determinant of M1: %5.2f\n", det_c ( m1 ) );
         printf( "Determinant of M2: %5.2f\n", det_c ( m2 ) );

         return ( 0 );
      }


      When this program was executed on a Mac/Intel/cc/64-bit
      platform, the output was:


      Determinant of M1:  0.00
      Determinant of M2: 45.00

Restrictions

   1)  No checking is implemented to determine whether `m1' will cause
       overflow or underflow in the process of calculating the
       determinant. In most cases, this will not pose a problem.
       The user is required to determine if `m1' is suitable matrix
       for det_c to operate on.

Literature_References

   None.

Author_and_Institution

   N.J. Bachman        (JPL)
   J. Diaz del Rio     (ODC Space)
   W.M. Owen           (JPL)

Version

   -CSPICE Version 1.0.1, 02-JUL-2021 (JDR)

       Edited the header to comply with NAIF standard. Added complete
       code example based on existing fragment.

   -CSPICE Version 1.0.0, 21-OCT-1998 (NJB) (WMO)

Index_Entries

   determinant of a d.p. 3x3_matrix
Fri Dec 31 18:41:04 2021