Skip to content

Form symmetric block matrices and condense them (eliminating blocks) at compile time using Schur complements. The goal is to manipulate KKT/augmented/saddle-point systems symbolically to obtain equivalent systems (typically: unsymmetric, symmetrized, and normal equations) that can be tackled by various numerical solvers

License

Notifications You must be signed in to change notification settings

cvanaret/SymmetricBlockMatrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SymmetricBlockMatrix

This is a C++ attempt at forming symmetric bloc matrices and condensing them at compile time using Schur complements. By condensation, we mean eliminating certain row blocks and substituting in the other block equations.

The goal is to manipulate KKT/augmented/saddle-point systems symbolically to obtain equivalent systems (typically: unsymmetric, symmetrized, and normal equations) that can be tackled by various numerical solvers.

An $n \times n$ symmetric block matrix is represented as a sequence of blocks in the upper triangular part of the matrix:

A_{11} A_{12} ... A_{1n}
       A_{22} ... A_{2n}
              ...
                  A_{nn}

Contributions are welcome!

About

Form symmetric block matrices and condense them (eliminating blocks) at compile time using Schur complements. The goal is to manipulate KKT/augmented/saddle-point systems symbolically to obtain equivalent systems (typically: unsymmetric, symmetrized, and normal equations) that can be tackled by various numerical solvers

Topics

Resources

License

Stars

Watchers

Forks