Example: Complex Sparse Cholesky Factorization

The Cholesky Factorization of a sparse Hermitian positive definite matrix is computed. Some additional information about the Cholesky factorization is also computed.
using System;
using Imsl.Math;

public class ComplexSparseCholeskyEx1
{
    public static void  Main(String[] args)
    {    
        ComplexSparseMatrix A = new ComplexSparseMatrix(3, 3);
        
        A.Set(0, 0, new Complex(2.0, 0.0));
        A.Set(1, 0, new Complex(-1.0, -1.0));
        A.Set(1, 1, new Complex(4.0, 0.0));
        A.Set(2, 1, new Complex(1.0, -2.0));
        A.Set(2, 2, new Complex(10.0, 0.0));
        
        Complex[] b = { new Complex(-2.0, 2.0), new Complex(5.0, 15.0), 
                        new Complex(36.0, 28.0)};
        
        ComplexSparseCholesky cholesky = new ComplexSparseCholesky(A);
        
        // Choose Multifrontal method as numeric factorization method
        cholesky.NumericFactorizationMethod = 
            ComplexSparseCholesky.NumericFactorization.MultiFrontalMethod;
        
        // Compute solution
        Complex[] solution = cholesky.Solve(b);
        
        PrintMatrix p = new PrintMatrix("Computed solution");
        p.Print(solution);
        
        // Compute additional information about the factorization

        Console.Out.Write("Smallest diagonal element of Cholesky factor: ");
        Console.Out.WriteLine(cholesky.SmallestDiagonalElement);
        Console.Out.Write("Largest diagonal element of Cholesky factor: ");
        Console.Out.WriteLine(cholesky.LargestDiagonalElement);
        Console.Out.Write("Number of nonzeros in Cholesky factor: ");
        Console.Out.WriteLine(cholesky.NumberOfNonzeros);
    }
}

Output

Computed solution
    0    
0  1+1i  
1  2+2i  
2  3+3i  

Smallest diagonal element of Cholesky factor: 1.4142135623731
Largest diagonal element of Cholesky factor: 2.88675134594813
Number of nonzeros in Cholesky factor: 5

Link to C# source.