The determinant of a scalar matrix may be calculated with the
procedure `ALIAS_MRINVD` that is also used to determine the
inverse of the matrix, see section 7.2.

The determinant of an interval matrix may be calculated by using Gaussian elimination with the procedure

int ALIAS_Det_By_Gaussian_Elim(INTERVAL_MATRIX &B, INTERVAL &DET)This procedures returns 1 if the determinant has been successfully calculated and is returned in

There are five main procedures to compute an interval evaluation of the determinant of an interval square matrix:

INTERVAL Slow_Determinant(INTERVAL_MATRIX &A) INTERVAL Slow_NonZero_Determinant(INTERVAL_MATRIX &A) INTERVAL Medium_Determinant(INTERVAL_MATRIX &A) INTERVAL Fast_Determinant(INTERVAL_MATRIX &A) INTERVAL VeryFast_Determinant(INTERVAL_MATRIX &A)These procedures differ only by the computation time (large for the Slow procedure as soon as the dimension of the matrix is larger than 5) and the accuracy of the interval evaluation (which is the worst for the Fast procedure). The

There are also special version of the previous procedures:

INTERVAL Slow_Determinant22(INTERVAL_MATRIX &A, INTERVAL (* TheDet22)(INTEGER_VECTOR &,INTEGER_VECTOR &,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input) INTERVAL Medium_Determinant22(INTERVAL_MATRIX &A, INTERVAL (* TheDet22)(INTEGER_VECTOR &,INTEGER_VECTOR &,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input) INTERVAL Fast_Determinant22(INTERVAL_MATRIX &A, INTERVAL (* TheDet22)(INTEGER_VECTOR &,INTEGER_VECTOR &,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input)They differ because the calculation of all the dimensions 2 minors are computed using the

INTERVAL TheDet22(INTEGER_VECTOR &ROW,INTEGER_VECTOR &COL,INTERVAL_VECTOR &Input)The integer vectors

A more general implementation of the previous procedure is

INTERVAL Determinant22(INTERVAL_MATRIX &A,int Minor,int Row, INTERVAL (* TheDet22)(INTEGER_VECTOR &,INTEGER_VECTOR &,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input)In this procedure

There are also procedures to compute the derivatives of a determinant

INTERVAL Fast_Derivative_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG); INTERVAL Medium_Derivative_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG); INTERVAL Slow_Derivative_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG);

If a procedure `TheDet22` for calculating the minor is available
you may use

INTERVAL Derivative_Determinant22(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG, int Minor, INTERVAL (* TheDet22)(INTEGER_VECTOR &,INTEGER_VECTOR &,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input)

There are also procedures to compute the second order derivatives of a determinant

INTERVAL Fast_Hessian_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG, INTERVAL_MATRIX &AH) INTERVAL Medium_Hessian_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG, INTERVAL_MATRIX &AH) INTERVAL Slow_Hessian_Determinant(INTERVAL_MATRIX &A,INTERVAL_MATRIX &AG, INTERVAL_MATRIX &AH)For a matrix then and if and

then the procedure will return the interval evaluation of .

You may also obtain an upper bound for the determinant of a matrix by using the procedure:

double Hadamard_Determinant(MATRIX &J)where we use the Hadamard bound of the determinant of a matrix

A similar procedure exists for an interval matrix

INTERVAL Hadamard_Determinant(INTERVAL_MATRIX &J)

The determinant of a scalar matrix may be calculated with

double Determinant(MATRIX &J)