|
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.
1.8.13