Free Electron
|
solve Ax=b for x More...
#include <BCGThreaded.h>
Public Member Functions | |
void | solve (VECTOR &x, const MATRIX &A, const VECTOR &b) |
void | setThreshold (F64 threshold) |
Private Member Functions | |
void | solve (U32 thread) |
void | solve (U32 thread, VECTOR &x, const MATRIX &A, const VECTOR &b) |
Private Attributes | |
sp< Gang< Worker, I32 > > | m_spGang |
const MATRIX * | m_A |
VECTOR * | m_x |
const VECTOR * | m_b |
VECTOR | r |
VECTOR | r_1 |
VECTOR | r_2 |
VECTOR | rb |
VECTOR | rb_1 |
VECTOR | rb_2 |
VECTOR | p |
VECTOR | p_1 |
VECTOR | pb |
VECTOR | pb_1 |
VECTOR | temp [2] |
VECTOR | Ap |
F64 | m_threshold |
F64 | m_dot_r_1 |
F64 | m_alpha |
F64 | m_beta |
U32 | m_N |
BWORD | m_break |
solve Ax=b for x
Uses Biconjugate-Gradient. The matrix must be positive-definite, but not necessarily symmetric. For symmetric matrices, a regular Conjugate-Gradient can be about twice as fast.
The arguments are templated, so any argument types should work, given that they have the appropriate methods and operators.