#include <solver-concept.h>
Inheritance diagram for SolverConcept:

Solver objects implement the functions described here. Generally a solver object will use a collection of closely related algorithms to implement these functions. It may be desirable to use different solver objects for different purposes. For a given matrix one object may be best for rank and another for solving a system, for instance. The intention of the object is to group related algorithms and to provide a convenient mechanism for trying competing methods on a given problem.
The solver concept is not as precise as others, such as the Blackbox concept. For instance, some solver objects may implement a subset of these functions, and some solver objects may implement useful and important additional functions.
Public Member Functions | |
| template<class Element, class Blackbox> Element & | determinant (Element &det, Blackbox &A) |
| det <-- determinant of A. | |
| template<class Blackbox> unsigned long & | rank (unsigned long &r, const Blackbox &A) |
| r <-- rank of A. | |
| template<class Polynomial, class Blackbox> Polynomial & | minpoly (Polynomial &P, const Blackbox &A) |
| P <-- Minimal polynomial of A. | |
| template<class Element, class Blackbox> Element & | trace (Element &t, const Blackbox &A) |
| t <-- trace of A (sum of diagonal entries). | |
| template<class Vector, class Blackbox> bool | solve (Vector &x, const Blackbox &A, const Vector &b) |
| if possible, set x such that Ax = b and return true, else return false. | |
| template<class Vector, class Blackbox> Vector & | nullspace_vector (Vector &x, const Blackbox &A) |
| set x such that Ax = 0, randomly, if a choice exists. | |
| template<class Vector, class Blackbox> bool | inconsistency_certificate (Vector &u, const Blackbox &A, const Vector &b) |
| if possible, set u such that u^T A = 0 & u^T b != 0 and return true, else return false. | |
|
||||||||||||
|
det <-- determinant of A.
Reimplemented in Wiedemann. |
|
||||||||||||
|
r <-- rank of A.
Reimplemented in Wiedemann. |
|
||||||||||||
|
P <-- Minimal polynomial of A. The resulting monic polynomial P(x) is stored as a vector of coefficients. It satisfies P(A)=0, and for all Q(x) with deg(Q) < deg(P), Q(A) != 0. Reimplemented in Wiedemann. |
|
||||||||||||
|
t <-- trace of A (sum of diagonal entries).
Reimplemented in Wiedemann. |
|
||||||||||||||||
|
if possible, set x such that Ax = b and return true, else return false.
|
|
||||||||||||
|
set x such that Ax = 0, randomly, if a choice exists. A sequence of nullity(A) calls should have an expectation of producing a nullspace basis. |
|
||||||||||||||||
|
if possible, set u such that u^T A = 0 & u^T b != 0 and return true, else return false.
|
1.3.7