CMSIS-DSP: Cholesky and LDLT decompositions

| CMSIS-DSP CMSIS DSP Software Library

- Main Page
- Usage and Description
- Reference

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Cholesky and LDLT decompositions
Matrix Functions

## Functions

arm_status | arm_mat_cholesky_f16 (const arm_matrix_instance_f16 *pSrc, arm_matrix_instance_f16 *pDst)
| Floating-point Cholesky decomposition of positive-definite matrix. More...
arm_status | arm_mat_cholesky_f32 (const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
| Floating-point Cholesky decomposition of positive-definite matrix. More...
arm_status | arm_mat_cholesky_f64 (const arm_matrix_instance_f64 *pSrc, arm_matrix_instance_f64 *pDst)
| Floating-point Cholesky decomposition of positive-definite matrix. More...
arm_status | arm_mat_ldlt_f32 (const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pl, arm_matrix_instance_f32 *pd, uint16_t *pp)
| Floating-point LDL^t decomposition of positive semi-definite matrix. More...
arm_status | arm_mat_ldlt_f64 (const arm_matrix_instance_f64 *pSrc, arm_matrix_instance_f64 *pl, arm_matrix_instance_f64 *pd, uint16_t *pp)
| Floating-point LDL^t decomposition of positive semi-definite matrix. More...

## Description

Computes the Cholesky or LL^t decomposition of a matrix.

If the input matrix does not have a decomposition, then the algorithm terminates and returns error status ARM_MATH_DECOMPOSITION_FAILURE.

## Function Documentation

arm_status arm_mat_cholesky_f16 | ( | const arm_matrix_instance_f16 * | pSrc,
|  | arm_matrix_instance_f16 * | pDst
| ) |  |

Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.

Parameters

  [in] | pSrc | points to the instance of the input floating-point matrix structure.
  [out] | pDst | points to the instance of the output floating-point matrix structure.

Returns
  The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
  execution status
  - ARM_MATH_SUCCESS : Operation successful
  - ARM_MATH_SIZE_MISMATCH : Matrix size check failed
  - ARM_MATH_DECOMPOSITION_FAILURE : Input matrix cannot be decomposed

  If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomposition. The decomposition of A is returning a lower triangular matrix U such that A = L L^t

arm_status arm_mat_cholesky_f32 | ( | const arm_matrix_instance_f32 * | pSrc,
|  | arm_matrix_instance_f32 * | pDst
| ) |  |

Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.

Parameters

  [in] | pSrc | points to the instance of the input floating-point matrix structure.
  [out] | pDst | points to the instance of the output floating-point matrix structure.

Returns
  The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
  execution status
  - ARM_MATH_SUCCESS : Operation successful
  - ARM_MATH_SIZE_MISMATCH : Matrix size check failed
  - ARM_MATH_DECOMPOSITION_FAILURE : Input matrix cannot be decomposed

  If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomposition. The decomposition of A is returning a lower triangular matrix L such that A = L L^t

arm_status arm_mat_cholesky_f64 | ( | const arm_matrix_instance_f64 * | pSrc,
|  | arm_matrix_instance_f64 * | pDst
| ) |  |

Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix.

Parameters

  [in] | pSrc | points to the instance of the input floating-point matrix structure.
  [out] | pDst | points to the instance of the output floating-point matrix structure.

Returns
  The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
  execution status
  - ARM_MATH_SUCCESS : Operation successful
  - ARM_MATH_SIZE_MISMATCH : Matrix size check failed
  - ARM_MATH_DECOMPOSITION_FAILURE : Input matrix cannot be decomposed

  If the matrix is ill conditioned or only semi-definite, then it is better using the LDL^t decomposition. The decomposition of A is returning a lower triangular matrix L such that A = L L^t

arm_status arm_mat_ldlt_f32 | ( | const arm_matrix_instance_f32 * | pSrc,
|  | arm_matrix_instance_f32 * | pl,
|  | arm_matrix_instance_f32 * | pd,
|  | uint16_t * | pp
| ) |  |

Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.

Parameters

  [in] | pSrc | points to the instance of the input floating-point matrix structure.
  [out] | pl | points to the instance of the output floating-point triangular matrix structure.
  [out] | pd | points to the instance of the output floating-point diagonal matrix structure.
  [out] | pp | points to the instance of the output floating-point permutation vector.

Returns
  The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
  execution status
  - ARM_MATH_SUCCESS : Operation successful
  - ARM_MATH_SIZE_MISMATCH : Matrix size check failed
  - ARM_MATH_DECOMPOSITION_FAILURE : Input matrix cannot be decomposed

  Computes the LDL^t decomposition of a matrix A such that P A P^t = L D L^t.

arm_status arm_mat_ldlt_f64 | ( | const arm_matrix_instance_f64 * | pSrc,
|  | arm_matrix_instance_f64 * | pl,
|  | arm_matrix_instance_f64 * | pd,
|  | uint16_t * | pp
| ) |  |

Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix.

Parameters

  [in] | pSrc | points to the instance of the input floating-point matrix structure.
  [out] | pl | points to the instance of the output floating-point triangular matrix structure.
  [out] | pd | points to the instance of the output floating-point diagonal matrix structure.
  [out] | pp | points to the instance of the output floating-point permutation vector.

Returns
  The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
  execution status
  - ARM_MATH_SUCCESS : Operation successful
  - ARM_MATH_SIZE_MISMATCH : Matrix size check failed
  - ARM_MATH_DECOMPOSITION_FAILURE : Input matrix cannot be decomposed

  Computes the LDL^t decomposition of a matrix A such that P A P^t = L D L^t.