# CxDeterminant

Advanced Analysis Library Only

AnalysisLibErrType CxDeterminant (void *inputMatrix, int matrixSize, int matrixType, ComplexNum *determinant);

## Purpose

Calculates the complex determinant of a square, complex input matrix.

In this function you can specify the input matrix type using matrixType. The input matrix can be upper or lower triangular, general, or positive definite. For an upper or lower triangular matrix, the determinant equals the product of the diagonal elements of the matrix. For a positive definite matrix, CxDeterminant first calculates the Cholesky factorization of the input matrix and then calculates the determinant as the square of the determinant of R.

## Parameters

Input
Name | Type | Description
inputMatrix | ComplexNum 2D array | Input complex, square matrix. The following C typedef statement defines the ComplexNum structure: typedef struct { double real; double imaginary; } ComplexNum;
matrixSize | integer | Number of elements in one dimension of the input matrix.
matrixType | integer | Type of the input matrix. Choose the matrix type correctly because it significantly affects the speed of computation. The following table shows valid matrix type values.
Matrix Type | Value
General matrix | 0
Positive definite | 1
Upper triangular | 2
Lower triangular | 3
Output
Name | Type | Description
determinant | ComplexNum | Complex determinant of the input matrix. The following C typedef statement defines the ComplexNum structure: typedef struct { double real; double imaginary; } ComplexNum;

## Return Value

Name | Type | Description
status | AnalysisLibErrType | A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants.