CGAL 6.1 - CGAL and Solvers

Loading...
Searching...
No Matches
List of all members
NormalEquationSparseLinearAlgebraTraits_d Concept Reference
Reference Manual » Concepts

## Definition

Concept describing the set of requirements for solving the normal equation \( A^t A X = A^t B \), \( A \) being a matrix, \( At \) its transpose matrix, \( B \) and \( X \) being two vectors.

See also
  `SparseLinearAlgebraTraits_d`

Has models
  `CGAL::Eigen_solver_traits<T>`

## Types
typedef unspecified_type | Matrix
| Matrix type model of `SparseLinearAlgebraTraits_d::Matrix`
typedef unspecified_type | Vector
| Vector type model of `SparseLinearAlgebraTraits_d::Vector`
typedef unspecified_type | NT
| Number type.

## Creation
| NormalEquationSparseLinearAlgebraTraits_d ()
| Default constructor.

## Operations
bool | normal_equation_factor (const Matrix &A)
| Factorize the sparse matrix `At * A`.
bool | normal_equation_solver (const Vector &B, Vector &X)
| Solve the sparse linear system `At * A * X = At * B`, with `A` being the matrix provided in `#normal_equation_factor()`, and `At` its transpose matrix.
bool | normal_equation_solver (const Matrix &A, const Vector &B, Vector &X)
| Equivalent to a call to `normal_equation_factor(A)` followed by a call to `normal_equation_solver(B,X)` .

## Member Function Documentation

## ◆ normal_equation_factor()

bool NormalEquationSparseLinearAlgebraTraits_d::normal_equation_factor | ( | const Matrix & | A | ) |

Factorize the sparse matrix `At * A`.

This factorization is used in `normal_equation_solver()` to solve the system for different right-hand side vectors.

Returns
  `true` if the factorization is successful and `false` otherwise.

## ◆ normal_equation_solver()

bool NormalEquationSparseLinearAlgebraTraits_d::normal_equation_solver | ( | const Vector & | B,
|  | Vector & | X
| ) |  |

Solve the sparse linear system `At * A * X = At * B`, with `A` being the matrix provided in `#normal_equation_factor()`, and `At` its transpose matrix.

Returns
  `true` if the solver is successful and `false` otherwise.