Free Electron
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fe::ext::BCGThreaded< MATRIX, VECTOR > Class Template Reference

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
 

Detailed Description

template<typename MATRIX, typename VECTOR>
class fe::ext::BCGThreaded< MATRIX, VECTOR >

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.


The documentation for this class was generated from the following file: