Routines (alphabetical) > Routines: C > CHOLSOL

# CHOLSOL

The CHOLSOL function returns an n-element vector containing the solution to the set of linear equations Ax = b, where A is the positive-definite symmetric array returned by the CHOLDC procedure.

CHOLSOL is based on the routine `cholsl` described in section 2.9 of Numerical Recipes in C: The Art of Scientific Computing (Second Edition), published by Cambridge University Press, and is used by permission.

Note: If you are working with complex inputs, use the LA_CHOLSOL procedure instead.

## Examples

To solve a positive-definite symmetric system Ax = b:

;Define the coefficient array:
A = [[ 6.0, 15.0, 55.0], $
[15.0, 55.0, 225.0], $
[55.0, 225.0, 979.0]]
;Define the right-hand side vector B:
B = [9.5, 50.0, 237.0]
;Compute Cholesky decomposition of A:
CHOLDC, A, P
;Compute and print the solution:
PRINT, CHOLSOL(A, P, B)

IDL prints:

-0.499998 -1.00000 0.500000

The exact solution vector is [-0.5, -1.0, 0.5].

## Syntax

Result = CHOLSOL( A, P, B [, /DOUBLE] )

## Return Value

Returns an n-element vector containing the solution to the set of linear equations Ax = b, where A is the positive-definite symmetric array returned by the CHOLDC.

## Arguments

### A

An n by n positive-definite symmetric array, as output by CHOLDC. Only the lower triangle of A is accessed.

Note: If CHOLSOL is complex then only the real part is used for the computation.

### P

The diagonal elements of the Cholesky factor L, as computed by CHOLDC.

### B

An n-element vector containing the right-hand side of the equation.

## Keywords

### DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

## Version History

4.0 | Introduced

## See Also

CHOLDC, CRAMER, GS_ITER, LA_CHOLSOL, LU_COMPLEX, LUSOL, SVSOL, TRISOL