TBCI Namespace Reference

The TBCI Numerical Library is put into TBCI namespace, if the compiler supports it (egcs-1.1.x and later for example). More...


Classes

class  BdMatrixErr
 exception class More...
class  BdMatrix
 The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band structure. More...
class  hcplx
 helper class idea: use builtin class whereever possible More...
class  VecErr
 exception class More...
class  BVector
 provides basic Vector functionality but arithmetic operators (+=, - , *, /. More...
class  cplx
 Our own complex class. More...
class  tbci_traits< TBCI::cplx< float > >
class  tbci_traits< TBCI::cplx< double > >
class  tbci_traits< TBCI::cplx< float > * >
class  tbci_traits< TBCI::cplx< double > * >
class  CRMatErr
class  CRMatrix
 C++ class for sparse matrices using compressed row storage. More...
class  CSCMatErr
class  CSCMatrix
class  NumErr
 exception base class for the TBCI NumLib More...
class  F_BandMatErr
class  F_BandMatrix
 C++ class for banded matrices using band storage in a one-dimensional array. More...
class  F_TMatrix
 Temporary Base Class (non referable!) (acc. More...
class  F_TSMatrix
 Temporary object for scaled matrices. More...
class  F_Matrix
class  FSVecErr
 exception class More...
class  FS_Vector
 Implementation of fixed sized Vectors (template argument) which is favorable for small Vectors, where the overhead of dynamically allocating and freeing memory and it's management is too expensive. More...
class  IdxErr
class  Index
 Note that this pragma interface might create problems as the class index is not templated! More...
class  ListItem
class  ListIterator
class  ListRIterator
class  List
class  nsList
 A numerically sortable List. More...
class  tbci_memalloc
struct  tbci_memalloc_cache_tls
struct  tbci_memalloc_cache
 For specializations of the memory allocator:
  • Freed (dealloced) memory blocks are not actually freed, but kept in a little cache, so an allocation to a block of the same size shortly after will succeed without a call to new/malloc/memalign.
More...
class  tbci_memalloc< double >
class  tbci_memalloc< doubleptr >
class  tbci_memalloc< float >
class  tbci_memalloc< floatptr >
class  tbci_memalloc< unsigned >
class  tbci_memalloc< uintptr >
class  tbci_memalloc< int >
class  tbci_memalloc< intptr >
class  tbci_memalloc< unsigned char >
class  tbci_memalloc< signed char >
class  tbci_memalloc< charptr >
class  tbci_memalloc< ucharptr >
class  tbci_memalloc< long >
class  tbci_memalloc< longptr >
class  tbci_memalloc< unsigned long >
class  tbci_memalloc< ulongptr >
class  tbci_memalloc< unsigned short >
class  tbci_memalloc< voidptr >
class  MatErr
 exception class More...
class  TMatrix
class  TSMatrix
class  Matrix
class  Mat_Brack
class  Matrix_Sig
 Common interface definition (signature) for all Matrices. More...
struct  thr_ctrl
class  tbci_memalloc< std::complex< double > >
class  tbci_memalloc< stdcomplexdoubleptr >
class  tbci_memalloc< std::complex< float > >
class  tbci_memalloc< stdcomplexfloatptr >
class  tbci_traits< std::complex< float > >
class  tbci_traits< std::complex< double > >
class  tbci_traits< std::complex< float > * >
class  tbci_traits< std::complex< double > * >
class  Symm_BdMatrix
 Matrix class with optimized Matrix-Vector multiplication for symmetrical Matrices. More...
class  tbci_traits
class  tbci_traits< bool >
class  tbci_traits< unsigned char >
class  tbci_traits< signed short >
class  tbci_traits< unsigned short >
class  tbci_traits< signed int >
class  tbci_traits< unsigned int >
class  tbci_traits< signed long >
class  tbci_traits< unsigned long >
class  tbci_traits< float >
class  tbci_traits< double >
class  tbci_traits< bool * >
class  tbci_traits< signed char * >
class  tbci_traits< unsigned char * >
class  tbci_traits< signed short * >
class  tbci_traits< unsigned short * >
class  tbci_traits< signed int * >
class  tbci_traits< unsigned int * >
class  tbci_traits< signed long * >
class  tbci_traits< unsigned long * >
class  tbci_traits< float * >
class  tbci_traits< double * >
class  tbci_traits< void * >
class  tbci_traits< long double >
class  tbci_traits< long double * >
class  tbci_traits< long long >
class  tbci_traits< long long * >
class  tbci_traits< volatile long >
class  TensErr
class  CTensor
 Note (KG, 981214): We don't handle rank == 0. More...
class  Tensor
 Tensor class including arithmetics. More...
class  TVector
 Temporary Base Class Idiom: Class TVector is used for temporary variables. More...
class  TSVector
class  Vector
class  BVector_Sig
 abstract base class (signature) for Vectors without arithmetics More...
class  Vector_Sig
 abstract base class (signature) for Vectors with arithmetics More...
class  DiagPreconditioner
class  DILU_BdMatrixPreconditioner
class  ILU0_Symm_BdMatrixPreconditioner
class  ILU0_BdMatrixPreconditioner
class  NoPreconditioner
class  Preconditioner_Sig
 Abstract base class for all Preconditioners. More...
class  cback

Typedefs

typedef enum _vararg vararg
typedef double cplx_base
typedef __complex__ double cplx_t
typedef cplx< double > COMPLEX_DOUBLE
typedef double * doubleptr
typedef float * floatptr
typedef unsigned int * uintptr
typedef int * intptr
typedef char * charptr
typedef unsigned char * ucharptr
typedef long * longptr
typedef unsigned long * ulongptr
typedef void * voidptr
typedef void(* thr_job_t )(struct thr_ctrl *)
typedef void *(* useful_job_t )(void *)
typedef void cbackfn (void *ptr, const int thr)
typedef std::complex< double > * stdcomplexdoubleptr
typedef std::complex< float > * stdcomplexfloatptr

Enumerations

enum  _vararg {
  vag0 = 0, vag1, vag2, vag3,
  vag4, vag5, vag6, vag7,
  vag8, vag9, vag10, vag11,
  vag12, vag13, vag14, vag15,
  vag16
}
 This is a helper type to identify and count varargs. More...
enum  rowcolvec { rowvec = 0, colvec = 1 }

Functions

template<typename T>
BdMatrix< T > transpose (BdMatrix< T > &mat)
template<typename T>
BdMatrix< T > operator* (const T &v, const BdMatrix< T > &m)
template<typename T>
void do_bdmat_vec_mult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec)
template<typename T>
void do_bdmat_vec_transmult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec)
template<typename T>
void do_bdmat_vec_dotmult (const unsigned start, const unsigned end, TVector< T > *res, const BdMatrix< T > *mat, const Vector< T > *vec)
template<typename T>
void job_bdmat_vec_mult (struct thr_ctrl *tc)
template<typename T>
void job_bdmat_vec_transmult (struct thr_ctrl *tc)
template<typename T>
std::ostream & operator<< (std::ostream &ostr, const BdMatrix< T > &mat)
template<typename T>
std::istream & operator>> (std::istream &istr, BdMatrix< T > &mat)
template<typename T>
void SWAP (T &a, T &b)
 SWAP function Note: We could implement a swap function without temporaries: a -= b b += a a -= b a = -a That's four arithmetic operations to save one temporary and it can be only done for integers.
template<typename T>
void _tbci_copy (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
template<typename T>
void _tbci_fill (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
template<typename T>
int sign (const T &x) __attribute__((const ))
 Signum.
double fabssqr (const double a) __attribute__((const ))
double fabssqr (const float a) __attribute__((const ))
double fabssqr (const int a) __attribute__((const ))
double fabssqr (const unsigned a) __attribute__((const ))
double fabssqr (const long double a) __attribute__((const ))
double fabssqr (const long long a) __attribute__((const ))
template<typename T>
sqr (const T &a) __attribute__((const ))
template<typename T>
dot (const T &a1, const T &a2) __attribute__((const ))
double fabssqr (const cplx_t &a)
double fabssqr (const TBCI::hcplx &c)
cplx_t dot (const cplx_t a, const cplx_t b)
bool operator<= (const hcplx &a, const hcplx &b)
bool operator< (const hcplx &a, const hcplx &b)
bool operator>= (const hcplx &a, const hcplx &b)
bool operator> (const hcplx &a, const hcplx &b)
bool operator<= (const hcplx &a, const cplx_t &b)
bool operator< (const hcplx &a, const cplx_t &b)
bool operator>= (const hcplx &a, const cplx_t &b)
bool operator> (const hcplx &a, const cplx_t &b)
bool operator<= (const cplx_t &a, const hcplx &b)
bool operator< (const cplx_t &a, const hcplx &b)
bool operator>= (const cplx_t &a, const hcplx &b)
bool operator> (const cplx_t &a, const hcplx &b)
std::ostream & operator<< (std::ostream &os, const cplx_t &c)
std::istream & operator>> (std::istream &in, cplx_t &c)
cplx_base polar (const cplx_t &c)
cplx_t expi (const cplx_base phi)
cplx_t sqr (const cplx_t &c)
template<typename T>
std::ostream & operator<< (std::ostream &os, const BVector< T > &v)
template<typename T>
std::istream & operator>> (std::istream &in, BVector< T > &v)
template<typename T>
BVector< T > concat (const BVector< T > &b1, const BVector< T > &b2)
template<typename T>
cplx< T > dot (const cplx< T > &a, const cplx< T > &b)
template<typename T>
cplx< T > operator+ (const T a, const cplx< T > &b)
template<typename T>
cplx< T > operator- (const T a, const cplx< T > &b)
template<typename T>
cplx< T > operator* (const T a, const cplx< T > &b)
template<typename T>
cplx< T > operator/ (const T a, const cplx< T > &b)
template<typename T>
double fabssqr (const cplx< T > &c)
template<typename T>
cplx< T > sqr (const cplx< T > &c)
template<typename T>
cplx< T > expi (const T phi)
template<typename T>
std::ostream & operator<< (std::ostream &os, const cplx< T > &c)
template<typename T>
std::istream & operator>> (std::istream &in, cplx< T > &c)
template<typename T>
TBCI::cplx< T > polar (const T &r, const T &p)
template<typename T>
void MatVecMult (Vector< T > &res, const CRMatrix< T > &m, const Vector< T > &v)
template<typename T>
CRMatrix< T > operator* (const T &z, const CRMatrix< T > &m)
template<typename T>
CRMatrix< T > transpose (const CRMatrix< T > &crm)
template<typename T>
std::ostream & operator<< (std::ostream &stream, const CRMatrix< T > &m)
template<typename T>
std::ostream & operator<< (std::ostream &stream, const CSCMatrix< T > &m)
template<typename T>
F_TMatrix< T > operator* (const F_Matrix< T > &m1, const CSCMatrix< T > &m2)
template<typename T>
F_TMatrix< T > operator* (const CSCMatrix< T > &m1, const F_Matrix< T > &m2)
template<typename T>
void MatVecMult (Vector< T > &res, const CSCMatrix< T > &m, const Vector< T > &v)
template<typename T>
CSCMatrix< T > operator* (const T &z, const CSCMatrix< T > &m)
template<typename T>
CSCMatrix< T > transpose (const CSCMatrix< T > &cscm)
char err_bf[128] __attribute__ ((weak))
static char * ltoa (const long l)
template<typename T>
bool operator== (const F_BandMatrix< T > &m1, const F_BandMatrix< T > &m2)
template<typename T>
bool operator!= (const F_BandMatrix< T > &m1, const F_BandMatrix< T > &m2)
template<typename T>
F_BandMatrix< T > operator- (const F_BandMatrix< T > &m)
template<typename T>
TVector< T > do_fbdmat_vec_mul (const F_BandMatrix< T > &m, const Vector< T > &v)
template<typename T>
TVector< T > operator* (const F_BandMatrix< T > &m, const Vector< T > &v)
template<typename T>
TVector< T > operator* (const F_BandMatrix< T > &m, const TVector< T > &tv)
template<typename T>
TVector< T > operator* (const F_BandMatrix< T > &m, const TSVector< T > &tsv)
template<typename T>
F_BandMatrix< T > do_fbdmat_scale (const F_BandMatrix< T > &m, const T z)
template<typename T>
F_BandMatrix< T > do_fbdmat_scale (const T z, const F_BandMatrix< T > &m)
template<typename T>
F_BandMatrix< T > operator* (const F_BandMatrix< T > &m, const T z)
template<typename T>
F_BandMatrix< T > operator* (const T z, const F_BandMatrix< T > &m)
template<typename T>
F_BandMatrix< T > operator/ (const F_BandMatrix< T > &m, const T z)
template<typename T>
F_BandMatrix< T > operator+ (const F_BandMatrix< T > &A, const F_BandMatrix< T > &B)
template<typename T>
F_BandMatrix< T > operator- (const F_BandMatrix< T > &A, const F_BandMatrix< T > &B)
template<typename T>
std::ostream & operator<< (std::ostream &stream, const F_BandMatrix< T > &m)
template<typename T>
F_BandMatrix< T > transpose (const F_BandMatrix< T > &fbd)
template<typename T>
F_TMatrix< T > operator+ (const T &a, F_TMatrix< T > b)
template<typename T>
F_TMatrix< T > operator- (const T &a, F_TMatrix< T > b)
template<typename T>
F_TSMatrix< T > operator* (const T &a, F_TMatrix< T > b)
template<typename T>
F_TMatrix< T > operator+ (const T &a, const F_Matrix< T > &b)
template<typename T>
F_TMatrix< T > operator- (const T &a, const F_Matrix< T > &b)
template<typename T>
F_TSMatrix< T > operator* (const T &a, const F_Matrix< T > &b)
template<typename T>
F_TMatrix< T > operator+ (const T &a, F_TSMatrix< T > ts)
template<typename T>
F_TMatrix< T > operator- (const T &a, F_TSMatrix< T > ts)
template<typename T>
F_TSMatrix< T > operator* (const T &f, F_TSMatrix< T > ts)
template<typename T>
std::ostream & operator<< (std::ostream &os, const F_Matrix< T > &m)
template<typename T>
std::ostream & operator<< (std::ostream &os, F_TMatrix< T > tm)
template<typename T>
std::ostream & operator<< (std::ostream &os, F_TSMatrix< T > ts)
template<typename T>
std::istream & operator>> (std::istream &in, F_Matrix< T > &m)
template<typename T>
F_TMatrix< T > transpose (const F_TMatrix< T > &ftm)
template<unsigned dims, typename T>
std::ostream & operator<< (std::ostream &os, const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
std::istream & operator>> (std::istream &in, FS_Vector< dims, T > &v)
template<unsigned dims, typename T>
dot (const FS_Vector< dims, T > &fv1, const FS_Vector< dims, T > &fv2)
template<unsigned dims, typename T, unsigned long dims2>
FS_Vector< dims, T > slice (const FS_Vector< dims, T > &fv, const unsigned long s, const unsigned long e)
template<unsigned dims, typename T>
FS_Vector< dims, T > emul (const FS_Vector< dims, T > &f1, const FS_Vector< dims, T > &f2)
template<unsigned dims, typename T>
FS_Vector< dims, T > cemul (const FS_Vector< dims, T > &f1, const FS_Vector< dims, T > &f2)
template<unsigned dims, typename T>
FS_Vector< dims, T > ediv (const FS_Vector< dims, T > &f1, const FS_Vector< dims, T > &f2)
template<unsigned dims, typename T>
FS_Vector< dims, T > cediv (const FS_Vector< dims, T > &f1, const FS_Vector< dims, T > &f2)
template<unsigned dims, typename T>
double fabssqr (const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
FS_Vector< dims, T > operator* (const T &v, const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
FS_Vector< dims, T > operator+ (const T &v, const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
FS_Vector< dims, T > operator- (const T &v, const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
min (const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
max (const FS_Vector< dims, T > &fv)
template<unsigned dims, typename T>
sum (const FS_Vector< dims, T > &fv)
TVector< unsigned > idx_fill_in1 (const Index &idx, const unsigned where, const unsigned what)
TVector< unsigned > idx_fill_in2 (const Index &idx, const unsigned where1, const unsigned what1, const unsigned where2, const unsigned what2)
TVector< unsigned > idx_remove1 (const Index &idx, const unsigned which)
TVector< unsigned > idx_remove2 (const Index &idx, const unsigned which1, const unsigned which2)
TVector< unsigned > idx_set1 (const Index &idx, const unsigned which, const unsigned what)
F_TMatrix< double > inv (const F_Matrix< double > &A, int overwriteA=0)
F_TMatrix< double > lu_solve (const F_Matrix< double > &A, const F_Matrix< double > &B, int overwriteA=0)
TVector< double > lu_solve (const F_Matrix< double > &A, const Vector< double > &B, int overwriteA=0)
TVector< double > lu_solve (const F_BandMatrix< double > &A, const Vector< double > &B)
TVector< double > lu_solve_expert (const F_BandMatrix< double > &A, const Vector< double > &B, int equi)
 Solution of linear eqution systems, partial pivoting.
TVector< double > lu_solve (F_BandMatrix< double > &A, const Vector< double > &B, int num_lower, int num_upper)
F_TMatrix< COMPLEX_DOUBLEinv (const F_Matrix< COMPLEX_DOUBLE > &A, int overwriteA=0)
F_TMatrix< COMPLEX_DOUBLElu_solve (const F_Matrix< COMPLEX_DOUBLE > &A, const F_Matrix< COMPLEX_DOUBLE > &B, int overwriteA=0)
int eig (const F_Matrix< double > &A, Vector< double > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A
int eig (const F_Matrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV)
int eig (const F_BandMatrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV)
int eig (const F_BandMatrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV, double ew_min, double ew_max)
int eig (F_Matrix< cplx< double > > A, Vector< double > &EW)
int eig (const F_Matrix< cplx< double > > &A, Vector< double > &EW, F_Matrix< cplx< double > > &EVec)
 complex hermitean
int eig (const F_Matrix< COMPLEX_DOUBLE > &A, Vector< COMPLEX_DOUBLE > &EW)
int eig (const F_Matrix< COMPLEX_DOUBLE > &A, Vector< COMPLEX_DOUBLE > &EW, F_Matrix< COMPLEX_DOUBLE > &EV)
int eig (const F_BandMatrix< cplx< double > > &A, const F_BandMatrix< cplx< double > > &B, double EW_min, double EW_max, Vector< double > &Eigenwerte, F_Matrix< cplx< double > > &Eigenvectoren)
 selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B
int eig (F_Matrix< std::complex< double > > A, Vector< double > &EW)
int eig (const F_Matrix< std::complex< double > > &A, Vector< double > &EW, F_Matrix< std::complex< double > > &EVec)
int eig (const F_BandMatrix< std::complex< double > > &A, const F_BandMatrix< std::complex< double > > &B, double EW_min, double EW_max, Vector< double > &Eigenwerte, F_Matrix< std::complex< double > > &Eigenvectoren)
template<typename T>
int Basis_Trafo (long int value, long int basis, Vector< T > &index)
template<typename T>
Partial_Del (T(*func)(const Vector< T > &, const Vector< T > &), const Vector< T > &x, const Vector< T > &p, int mu, T h, T &err)
template<typename T>
Chisq (Vector< T > &data, Vector< T > &func, Vector< T > &sig)
template<typename T>
Chisquare_2D (T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > &param, Vector< T > &x, Vector< T > &y, Vector< T > &z, Vector< T > &sigma)
template<typename T>
TVector< T > Grid_Min_2D (T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > &x, Vector< T > &y, Vector< T > &z, Vector< T > &sig, Vector< T > &pmin, Vector< T > &pmax, Vector< T > &lambda, long int res, int max_it, char v)
template<typename T>
LM_fit_2D (Vector< T > &x, Vector< T > &y, Vector< T > &z, Vector< T > &sig, Vector< T > &param, Vector< T > &plow, Vector< T > &phigh, T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > lambda, Vector< T > &lscale, T tol, int iter, char ver)
template<typename T>
tbci_memalloc< T > & tbci_s_allocator ()
template<>
tbci_memalloc< double > & tbci_s_allocator< double > ()
template<>
tbci_memalloc< doubleptr > & tbci_s_allocator< doubleptr > ()
template<>
tbci_memalloc< float > & tbci_s_allocator< float > ()
template<>
tbci_memalloc< floatptr > & tbci_s_allocator< floatptr > ()
template<>
tbci_memalloc< unsigned > & tbci_s_allocator< unsigned > ()
template<>
tbci_memalloc< uintptr > & tbci_s_allocator< uintptr > ()
template<>
tbci_memalloc< int > & tbci_s_allocator< int > ()
template<>
tbci_memalloc< intptr > & tbci_s_allocator< intptr > ()
template<>
tbci_memalloc< unsigned char > & tbci_s_allocator< unsigned char > ()
template<>
tbci_memalloc< signed char > & tbci_s_allocator< signed char > ()
template<>
tbci_memalloc< charptr > & tbci_s_allocator< charptr > ()
template<>
tbci_memalloc< ucharptr > & tbci_s_allocator< ucharptr > ()
template<>
tbci_memalloc< long > & tbci_s_allocator< long > ()
template<>
tbci_memalloc< longptr > & tbci_s_allocator< longptr > ()
template<>
tbci_memalloc< unsigned long > & tbci_s_allocator< unsigned long > ()
template<>
tbci_memalloc< ulongptr > & tbci_s_allocator< ulongptr > ()
template<>
tbci_memalloc< unsigned short > & tbci_s_allocator< unsigned short > ()
template<>
tbci_memalloc< voidptr > & tbci_s_allocator< voidptr > ()
template<typename T>
void do_mat_vec_mult (const unsigned start, const unsigned end, TVector< T > *res, const Matrix< T > *mat, const Vector< T > *vec)
template<typename T>
void do_mat_tsv_mult (const unsigned start, const unsigned end, TVector< T > *res, const Matrix< T > *mat, const TSVector< T > *vec)
template<typename T>
void do_mat_vec_transmult (const unsigned start, const unsigned end, TVector< T > *res, const Matrix< T > *mat, const Vector< T > *vec)
template<typename T>
TMatrix< T > operator+ (const T &a, TMatrix< T > b)
template<typename T>
TMatrix< T > operator- (const T &a, TMatrix< T > b)
template<typename T>
TSMatrix< T > operator* (const T &a, TMatrix< T > b)
template<typename T>
TMatrix< T > operator+ (const T &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > operator- (const T &a, const Matrix< T > &b)
template<typename T>
TSMatrix< T > operator* (const T &a, const Matrix< T > &b)
template<typename T>
double fabssqr (const TMatrix< T > &tm)
template<typename T>
TMatrix< T > transpose (const TMatrix< T > &tm)
template<typename T>
TMatrix< T > operator+ (const T &a, const TSMatrix< T > &ts)
template<typename T>
TMatrix< T > operator- (const T &a, const TSMatrix< T > &ts)
template<typename T>
TSMatrix< T > operator* (const T &f, TSMatrix< T > ts)
template<typename T>
double fabssqr (TSMatrix< T > &tsm)
template<typename T>
std::ostream & operator<< (std::ostream &os, const Matrix< T > &m)
template<typename T>
std::istream & operator>> (std::istream &in, Matrix< T > &m)
template<typename T>
std::ostream & operator<< (std::ostream &os, TMatrix< T > tm)
template<typename T>
std::ostream & operator<< (std::ostream &os, const TSMatrix< T > &ts)
template<typename T>
void job_mat_mat_mult (struct thr_ctrl *tc)
template<typename T>
double fabssqr (const Matrix< T > &m)
template<typename T>
void job_mat_vec_mult (struct thr_ctrl *tc)
template<typename T>
void job_mat_vec_transmult (struct thr_ctrl *tc)
template<typename T>
BVector< T > & bvfillm (BVector< T > &bv, const Matrix< T > &m)
template<typename T>
int lu_decomp (Matrix< T > &mat)
 LU decomposes the TBCI::Matrix mat.
template<typename T>
void do_nothing (T dummy)
template<typename T>
int basis_trafo (long int value, long int basis, Vector< T > &index)
template<typename T>
partial_del (T(*func)(const Vector< T > &, const Vector< T > &), const Vector< T > &x, const Vector< T > &p, int mu, T h, T &err)
template<typename T>
chisq (Vector< T > &data, Vector< T > &func, Vector< T > &sig)
template<typename T>
chisquare (T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > &param, Vector< T > &x, Vector< T > &y, Vector< T > &sigma)
template<typename T>
TVector< T > grid_min (T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > &x, Vector< T > &y, Vector< T > &sig, Vector< T > &pmin, Vector< T > &pmax, Vector< T > &lambda, long int res, int max_it, char v)
template<typename T>
lev_mar (Vector< T > &x, Vector< T > &y, Vector< T > &sig, Vector< T > &param, Vector< T > &plow, Vector< T > &phigh, T(*func)(const Vector< T > &, const Vector< T > &), Vector< T > lambda, Vector< T > &lscale, T tol, int iter, char ver)
template<typename T>
void hpsort (Matrix< T > &x, int pos)
int init_threads (const int thr=0)
void free_threads ()
 Should be called on shutdown for multithreaded programs.
int threads_avail (const int=0)
 Test availability of threads.
void disable_threads ()
 Switch off multithreading.
void reenable_threads ()
 Switch on multithreading again.
void bind_threads (bool bind_main=false)
 Set scheduling affinity of threads Rather than letting the OS decide which CPU a thread runs on, this makes sure a thread can only run on one CPU.
void thread_start (const int thr_no, thr_job_t job, const unsigned long sz,...)
 last arg must be (void*)0 !
void thread_start_off (const int thr_no, thr_job_t job, const unsigned long offset, const unsigned long sz,...)
void thread_wait (const int)
void * thread_wait_useful (const int, useful_job_t=0, void *=0)
long double thread_wait_result (const int)
template<typename T>
static unsigned long slice_offset (int thr, int no_thr, unsigned long dim, T *ptr)
void thread_reg_callback (cbackfn ctor, cbackfn dtor, void *parm)
void thread_dereg_callback (cbackfn ctor, cbackfn dtor, void *parm)
cplx< double > besselh1 (double order, const cplx< double > &z)
cplx< double > besselh2 (double order, const cplx< double > &z)
cplx< double > besseli (double order, const cplx< double > &z)
cplx< double > besselj (double order, const cplx< double > &z)
cplx< double > besselk (double order, const cplx< double > &z)
cplx< double > bessely (double order, const cplx< double > &z)
cplx< double > gamma (const cplx< double > &z)
cplx< double > HypergeometricM (const cplx< double > &a, const cplx< double > &b, const cplx< double > &z)
cplx< double > HypergeometricU (const cplx< double > &a, const cplx< double > &b, const cplx< double > &z)
cplx< double > hyper2geom1 (const cplx< double > &a, const cplx< double > &b, const cplx< double > &c, const cplx< double > &z)
std::complex< double > besselh1 (double order, const std::complex< double > &z)
std::complex< double > besselh2 (double order, const std::complex< double > &z)
std::complex< double > besseli (double order, const std::complex< double > &z)
std::complex< double > besselj (double order, const std::complex< double > &z)
std::complex< double > besselk (double order, const std::complex< double > &z)
std::complex< double > bessely (double order, const std::complex< double > &z)
std::complex< double > gamma (const std::complex< double > &z)
std::complex< double > HypergeometricM (const std::complex< double > &a, const std::complex< double > &b, const std::complex< double > &z)
std::complex< double > HypergeometricU (const std::complex< double > &a, const std::complex< double > &b, const std::complex< double > &z)
std::complex< double > hyper2geom1 (const std::complex< double > &a, const std::complex< double > &b, const std::complex< double > &c, const std::complex< double > &z)
template<typename T>
double fabssqr (const std::complex< T > &a)
template<>
tbci_memalloc< std::complex
< double > > & 
tbci_s_allocator< std::complex< double > > ()
template<>
tbci_memalloc
< stdcomplexdoubleptr > & 
tbci_s_allocator< stdcomplexdoubleptr > ()
template<>
tbci_memalloc< std::complex
< float > > & 
tbci_s_allocator< std::complex< float > > ()
template<>
tbci_memalloc
< stdcomplexfloatptr > & 
tbci_s_allocator< stdcomplexfloatptr > ()
template<typename T>
std::ostream & operator<< (std::ostream &out, const Symm_BdMatrix< T > &matrix)
template<typename T>
std::ostream & operator<< (std::ostream &os, const CTensor< T > &ct)
template<typename T>
std::istream & operator>> (std::istream &is, CTensor< T > &ct)
template<typename T>
Tensor< T > ctrmul (const Tensor< T > &t1, const Tensor< T > &t2, const unsigned i1, const unsigned i2)
template<typename T>
Tensor< T > metrmul (const Tensor< T > &metr, const Tensor< T > &t, const unsigned i1, const unsigned i2)
template<typename T>
Tensor< T > dctmul (const Tensor< T > &t0, const Tensor< T > &t1)
template<typename T>
Tensor< T > operator* (const T m, const Tensor< T > &t)
template<typename T>
void do_vec_vec_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = vec + vec;
template<typename T>
void do_vec_vec_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = vec - vec;
template<typename T>
void do_vec_vec_mul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = emul (vec, vec);
template<typename T>
void do_vec_vec_cmul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = cemul(vec, vec);
template<typename T>
void do_vec_vec_div (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = ediv (vec, vec);
template<typename T>
void do_vec_vec_cdiv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
 vec = cediv(vec, vec);
template<typename T>
void do_vec_add_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec += vec;
template<typename T>
void do_vec_sub_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec -= vec;
template<typename T>
void do_vec_sub_vec_inv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec -= vec; vec = -vec;
template<typename T>
void do_vec_mul_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec *= vec; (emul)
template<typename T>
void do_vec_cmul_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec *= conj(vec); (cemul)
template<typename T>
void do_vec_cmul_vec_inv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec *= conj(vec); (cemul)
template<typename T>
void do_vec_div_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec /= vec; (ediv)
template<typename T>
void do_vec_div_vec_inv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec /= vec; (ediv)
template<typename T>
void do_vec_cdiv_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec /= conj(vec); (cediv)
template<typename T>
void do_vec_cdiv_vec_inv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec /= conj(vec); (cediv)
template<typename T>
void do_vec_val_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = vec + val
template<typename T>
void do_vec_val_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = vec - val
template<typename T>
void do_vec_val_mul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = vec * val;
template<typename T>
void do_val_vec_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val + vec;
template<typename T>
void do_val_vec_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val - vec;
template<typename T>
void do_val_vec_mul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val * vec;
template<typename T>
void do_val_vec_div (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val / vec;
template<typename T>
void do_vec_add_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec += val;
template<typename T>
void do_vec_sub_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec -= val;
template<typename T>
void do_val_sub_vec (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec -= val; vec = -vec;
template<typename T>
void do_vec_mul_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec *= val;
template<typename T>
void do_vec_div_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec /= val;
template<typename T>
void do_val_div_vec (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val / vec;
template<typename T>
void do_val_add_vec (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec += val
template<typename T>
void do_vec_add_svc (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec += val*vec
template<typename T>
void do_vec_sub_svc (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec -= val*vec
template<typename T>
void do_vec_sub_svc_inv (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec -= val*vec
template<typename T>
void do_vec_svc_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = vec + s*vec;
template<typename T>
void do_vec_svc_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = vec - s*vec;
template<typename T>
void do_svc_vec_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec + vec;
template<typename T>
void do_svc_vec_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec - vec;
template<typename T>
void do_svc_svc_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec + s*vec;
template<typename T>
void do_svc_svc_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec - s*vec;
template<typename T>
void do_svc_add_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec *= s; vec += vec;
template<typename T>
void do_svc_sub_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec *= s; vec -= vec;
template<typename T>
void do_svc_add_svc (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec *= s; vec += s*vec;
template<typename T>
void do_svc_sub_svc (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec *= s; vec -= s*vec;
template<typename T>
void do_svc_val_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec + val
template<typename T>
void do_svc_val_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec - val
template<typename T>
void do_svc_add_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec; vec += val;
template<typename T>
void do_svc_sub_val (const unsigned long sz, T *__restrict__ const res, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = s*vec; vec -= val;
template<typename T>
void do_val_svc_add (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val + s*vec;
template<typename T>
void do_val_svc_sub (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val - s*vec;
template<typename T>
void do_val_svc_div (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, register typename tbci_traits< T >::loop_const_refval_type f1, register typename tbci_traits< T >::loop_const_refval_type f2)
 vec = val / s*vec;
template<typename T>
void do_vec_neg_vec (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1)
 vec = -vec
template<typename T>
void do_vec_neg (const unsigned long sz, T *__restrict__ const res)
 vec = -vec
template<typename T>
void do_vec_dot (const unsigned long sz, const T *__restrict__ const v1, const T *__restrict__ const v2, T &_f2)
 val = SUM vec * ~vec;
template<typename T>
void do_vec_mult (const unsigned long sz, const T *__restrict__ const v1, const T *__restrict__ const v2, T &_f2)
 val = SUM vec * vec;
template<typename T>
void do_vec_fabssqr (const unsigned long sz, const T *res, long double &_f2)
 val = SUM fabssqr vec ;
template<typename T>
void do_vec_sumsqr (const unsigned long sz, const T *res, T &_f2)
 val = SUM sqr vec ;
template<typename T>
void do_vec_sum (const unsigned long sz, const T *res, T &_f2)
 val = SUM vec ;
template<typename T>
void do_vv_comp (const unsigned long sz, const T *__restrict__ const v1, const T *__restrict__ const v2, volatile long &_f2)
 f2 = number of differences vec, vec
template<typename T>
void do_add_vec_vec_mul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
template<typename T>
void do_add_vec_vec_cmul (const unsigned long sz, T *__restrict__ const res, const T *__restrict__ const v1, const T *__restrict__ const v2)
template<typename T>
std::ostream & operator<< (std::ostream &os, const TVector< T > &tv)
template<typename T>
void job_vec_vec_add (struct thr_ctrl *tc)
 vec = vec + vec;
template<typename T>
void job_vec_vec_sub (struct thr_ctrl *tc)
 vec = vec - vec;
template<typename T>
void job_vec_add_vec (struct thr_ctrl *tc)
 vec += vec;
template<typename T>
void job_vec_sub_vec (struct thr_ctrl *tc)
 vec -= vec;
template<typename T>
void job_vec_sub_vec_inv (struct thr_ctrl *tc)
 vec -= vec; vec = -vec;
template<typename T>
void job_vec_val_add (struct thr_ctrl *tc)
 vec = vec + val;
template<typename T>
void job_vec_val_sub (struct thr_ctrl *tc)
 vec = vec - val;
template<typename T>
void job_vec_val_mul (struct thr_ctrl *tc)
 vec = vec * val;
template<typename T>
void job_val_vec_mul (struct thr_ctrl *tc)
 vec = val * vec;
template<typename T>
void job_val_vec_add (struct thr_ctrl *tc)
 vec = val + vec;
template<typename T>
void job_val_vec_sub (struct thr_ctrl *tc)
 vec = val - vec;
template<typename T>
void job_val_vec_div (struct thr_ctrl *tc)
 vec = val / vec;
template<typename T>
void job_vec_add_val (struct thr_ctrl *tc)
 vec += val;
template<typename T>
void job_val_add_vec (struct thr_ctrl *tc)
 vec += val;
template<typename T>
void job_vec_sub_val (struct thr_ctrl *tc)
 vec -= val;
template<typename T>
void job_val_sub_vec (struct thr_ctrl *tc)
 vec -= val; vec = -vec;
template<typename T>
void job_vec_mul_val (struct thr_ctrl *tc)
 vec *= val;
template<typename T>
void job_vec_div_val (struct thr_ctrl *tc)
 vec /= val;
template<typename T>
void job_val_div_vec (struct thr_ctrl *tc)
 vec = val/self;
template<typename T>
void job_vec_svc_add (struct thr_ctrl *tc)
 vec = vec + s*vec;
template<typename T>
void job_svc_vec_add (struct thr_ctrl *tc)
 vec = s*vec + vec;
template<typename T>
void job_svc_svc_add (struct thr_ctrl *tc)
 vec = s*vec + s*vec;
template<typename T>
void job_vec_svc_sub (struct thr_ctrl *tc)
 vec = vec - s*vec;
template<typename T>
void job_svc_vec_sub (struct thr_ctrl *tc)
 vec = s*vec - vec;
template<typename T>
void job_svc_svc_sub (struct thr_ctrl *tc)
 vec = s*vec - s*vec;
template<typename T>
void job_vec_add_svc (struct thr_ctrl *tc)
 vec += s*vec;
template<typename T>
void job_vec_sub_svc (struct thr_ctrl *tc)
 vec -= s*vec;
template<typename T>
void job_vec_sub_svc_inv (struct thr_ctrl *tc)
 vec -= s*vec;
template<typename T>
void job_svc_val_add (struct thr_ctrl *tc)
 vec = s*vec + val;
template<typename T>
void job_svc_val_sub (struct thr_ctrl *tc)
 vec = s*vec - val;
template<typename T>
void job_val_svc_add (struct thr_ctrl *tc)
 vec = val + s*vec;
template<typename T>
void job_val_svc_sub (struct thr_ctrl *tc)
 vec = val + s*vec;
template<typename T>
void job_val_svc_div (struct thr_ctrl *tc)
 vec = val / s*vec;
template<typename T>
const TVector< T > & operator+ (const T &a, const TVector< T > &b)
 TV = T + TV Transformed to TV += T.
template<typename T>
const TVector< T > & operator- (const T &a, const TVector< T > &b)
 TV = T - TV Transformed to -TV -= T.
template<typename T>
TSVector< T > operator* (const T &a, const TVector< T > &b)
template<typename T>
TSVector< T > operator/ (const T &a, TVector< T > b)
template<typename T>
TVector< T > & conj (TVector< T > &tv)
template<typename T>
TVector< T > & real (TVector< T > &tv)
template<typename T>
TVector< T > & imag (TVector< T > &tv)
template<typename T>
TVector< T > conj (const Vector< T > &v)
template<typename T>
TVector< T > real (const Vector< T > &v)
template<typename T>
TVector< T > imag (const Vector< T > &v)
template<typename T>
double fabssqr (const Vector< T > &v)
template<typename T>
const TSVector< T > & operator* (const T &f, const TSVector< T > &ts)
template<typename T>
TVector< T > operator+ (const T &v, const TSVector< T > &tsv)
template<typename T>
TVector< T > operator- (const T &v, const TSVector< T > &tsv)
template<typename T>
std::ostream & operator<< (std::ostream &os, const TSVector< T > &ts)
template<typename T>
double fabssqr (const TSVector< T > &ts)
template<typename T>
std::ostream & operator<< (std::ostream &os, const Vector< T > &v)
template<typename T>
void job_vec_dot (struct thr_ctrl *tc)
template<typename T>
void job_vec_mult (struct thr_ctrl *tc)
template<typename T>
dot (const Vector< T > &a, const Vector< T > &b)
template<typename T>
void job_vv_comp (struct thr_ctrl *tc)
template<typename T>
bool par_comp (const Vector< T > &v1, const Vector< T > &v2)
template<typename T>
bool par_comp (const Vector< T > &v1, TVector< T > v2)
template<typename T>
bool par_comp (TVector< T > v1, const Vector< T > &v2)
template<typename T>
bool par_comp (TVector< T > v1, TVector< T > v2)
template<typename T>
TVector< T > operator+ (const T &a, const Vector< T > &v)
 TV = T + V.
template<typename T>
TVector< T > operator- (const T &a, const Vector< T > &v)
 TV = T - V.
template<typename T>
TSVector< T > operator* (const T &a, const Vector< T > &b)
template<typename T>
TSVector< T > operator/ (const T &a, const Vector< T > &b)
template<typename T>
void job_vec_fabssqr (struct thr_ctrl *tc)
template<typename T>
double fabssqr (TVector< T > tv)
template<typename T>
TVector< T > emul (const Vector< T > &a, const Vector< T > &b)
template<typename T>
TVector< T > emul (TVector< T > a, const Vector< T > &b)
template<typename T>
TVector< T > emul (const Vector< T > &a, TVector< T > b)
template<typename T>
TVector< T > emul (TVector< T > a, TVector< T > b)
template<typename T>
TVector< T > cemul (const Vector< T > &a, const Vector< T > &b)
template<typename T>
TVector< T > cemul (TVector< T > a, const Vector< T > &b)
template<typename T>
TVector< T > cemul (const Vector< T > &a, TVector< T > b)
template<typename T>
TVector< T > cemul (TVector< T > a, TVector< T > b)
template<typename T>
TVector< T > ediv (const Vector< T > &a, const Vector< T > &b)
template<typename T>
TVector< T > ediv (TVector< T > a, const Vector< T > &b)
template<typename T>
TVector< T > ediv (const Vector< T > &a, TVector< T > b)
template<typename T>
TVector< T > ediv (TVector< T > a, TVector< T > b)
template<typename T>
TVector< T > cediv (const Vector< T > &a, const Vector< T > &b)
template<typename T>
TVector< T > cediv (TVector< T > a, const Vector< T > &b)
template<typename T>
TVector< T > cediv (const Vector< T > &a, TVector< T > b)
template<typename T>
TVector< T > cediv (TVector< T > a, TVector< T > b)
template<typename T>
TVector< T > emul (TVector< T > tv, const TSVector< T > &ts)
template<typename T>
TVector< T > emul (const TSVector< T > &ts, TVector< T > tv)
template<typename T>
TVector< T > emul (const Vector< T > &v, const TSVector< T > &ts)
template<typename T>
TVector< T > emul (const TSVector< T > &ts, const Vector< T > &v)
template<typename T>
TVector< T > emul (const TSVector< T > &ts1, const TSVector< T > &ts2)
template<typename T>
TVector< T > cemul (TVector< T > tv, const TSVector< T > &ts)
template<typename T>
TVector< T > cemul (const TSVector< T > &ts, TVector< T > tv)
template<typename T>
TVector< T > cemul (const Vector< T > &v, const TSVector< T > &ts)
template<typename T>
TVector< T > cemul (const TSVector< T > &ts, const Vector< T > &v)
template<typename T>
TVector< T > cemul (const TSVector< T > &ts1, const TSVector< T > &ts2)
template<typename T>
TVector< T > ediv (TVector< T > tv, const TSVector< T > &ts)
template<typename T>
TVector< T > ediv (const Vector< T > &v, const TSVector< T > &ts)
template<typename T>
TVector< T > ediv (const TSVector< T > &ts1, const TSVector< T > &ts2)
template<typename T>
TVector< T > ediv (const TSVector< T > &ts, const Vector< T > &v)
template<typename T>
TVector< T > ediv (const TSVector< T > &ts, TVector< T > tv)
template<typename T>
TVector< T > cediv (TVector< T > tv, const TSVector< T > &ts)
template<typename T>
TVector< T > cediv (const TSVector< T > &ts, TVector< T > tv)
template<typename T>
TVector< T > cediv (const Vector< T > &v, const TSVector< T > &ts)
template<typename T>
TVector< T > cediv (const TSVector< T > &ts, const Vector< T > &v)
template<typename T>
TVector< T > cediv (const TSVector< T > &ts1, const TSVector< T > &ts2)
template<typename T>
TVector< T > ediv (const T &a, TVector< T > b)
template<typename T>
TVector< T > ediv (const T &a, const Vector< T > &b)
template<typename T>
TVector< T > ediv (const T &a, const TSVector< T > &ts)
template<typename T>
TMatrix< T > emul (const Matrix< T > &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > cemul (const Matrix< T > &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > ediv (const Matrix< T > &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > cediv (const Matrix< T > &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > ediv (const T &a, TMatrix< T > b)
template<typename T>
TMatrix< T > ediv (const T &a, const Matrix< T > &b)
template<typename T>
TMatrix< T > ediv (const T &a, const TSMatrix< T > &ts)
template<typename T>
int lu_decomp (BdMatrix< T > &mat)
 LU decompose a TBCI::BdMatrix.
template<typename T>
TVector< T > LU_fwd_subst (const BdMatrix< T > &lu, const Vector< T > &y)
template<typename T>
TVector< T > LU_bkw_subst (const BdMatrix< T > &lu, const Vector< T > &y)
template<typename T>
TVector< T > LU_solve (const BdMatrix< T > &lu, const Vector< T > &b)
 Solve the equation Ax = b where A IS already LU decomposed.
template<typename T>
TVector< T > lu_solve (BdMatrix< T > &mat, const Vector< T > &b)
 Solve the equation Ax = b where A still needs to be LU decomposed.
template<typename T>
TMatrix< T > LU_solve (const BdMatrix< T > &lu, const Matrix< T > &b)
template<typename T>
TMatrix< T > lu_solve (BdMatrix< T > &mat, const Matrix< T > &b)
template<typename T>
LU_det (const BdMatrix< T > &lu)
 calculates determinant of an already LU decomposed BdMatrix
template<typename T>
lu_det (BdMatrix< T > &mat)
 calculates the determinant of a BdMatrix by doing an LU decomposition
template<typename T>
TMatrix< T > LU_invert (const BdMatrix< T > &lu)
 return the inverse Matrix for an already LU decomposed BdMatrix
template<typename T>
TMatrix< T > lu_invert (BdMatrix< T > &mat)
 return the inverse Matrix for a BdMatrix by doing an LU decomposition
template<typename T, typename SysMatrix, typename SysVector>
int BiCG (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol)
 Iterative template solver -- BiCG.
template<typename T, typename SysMatrix, typename T_tol>
int BiCGSTAB (const SysMatrix &A, Vector< T > &x, const Vector< T > &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, T_tol &tol, const unsigned off=0)
 BiCGSTAB solves the unsymmetric linear system Ax = b using the Preconditioned BiConjugate Gradient Stabilized method.
template<typename T, typename SysMatrix, typename SysVector>
int CG (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol)
 Iterative template solver routine -- CG.
template<typename T, typename SysMatrix, typename SysVector>
int CG2 (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol)
 CG2 solves the symmetric complex (positive definite?) linear system Ax=b using the Conjugate Gradient method.
template<typename T, typename SysMatrix, typename SysVector>
int CGS (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol, const unsigned off=0)
 Iterative template routine -- CGS.
template<typename T, typename SysMatrix, typename SysVector>
int CHEBY (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol, T eigmin, T eigmax)
 Iterative template routine -- CHEBY.
template<typename Matrix>
double norm_1 (const Matrix &mat)
template<typename T>
double norm_1 (const TMatrix< T > &mat)
 We need a special implementation for TMatrix to prevent memory leak.
template<typename Matrix>
void expm (const Matrix &exponent, Matrix &E)
template<typename MatrixIn, typename MatrixOut>
void expm2 (const MatrixIn &exponent, MatrixOut &erg, double ERROR=1e-3)
template<typename MatrixIn, typename MatrixOut>
void expm3 (const MatrixIn &exponent, MatrixOut &erg, double ERROR=1e-3)
template<typename T>
char gaussj (Matrix< T > &a, Matrix< T > &b)
template<typename SysMatrix, typename SysVector>
void Update (SysVector &x, int k, SysMatrix &h, SysVector &s, SysVector *V)
template<typename T>
void GeneratePlaneRotation (const T &dx, const double &dy, double &cs, T &sn)
 We follow Frayssé, Giraud, Gratton for the complex implementation of the Givens plane rotations.
template<typename T>
void ApplyPlaneRotation (T &dx, T &dy, const double &cs, const T &sn)
template<typename T, typename SysMatrix, typename SysVector>
int GMRES (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, int &m, unsigned int &max_iter, double &tol)
 Iterative template routine -- GMRES.
template<typename T, typename SysMatrix, typename SysVector>
int IR (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M, unsigned int &max_iter, double &tol)
 Iterative template routine -- Preconditioned Richardson.
template<typename T>
TVector< T > LU_fwd_subst (const Matrix< T > &lu, const Vector< T > &y)
template<typename T>
TVector< T > LU_bkw_subst (const Matrix< T > &lu, const Vector< T > &y)
template<typename T>
TVector< T > LU_solve (const Matrix< T > &lu, const Vector< T > &b)
template<typename T>
TVector< T > lu_solve (Matrix< T > &mat, const Vector< T > &b)
template<typename T>
TMatrix< T > LU_solve (const Matrix< T > &lu, const Matrix< T > &b)
template<typename T>
TMatrix< T > lu_solve (Matrix< T > &mat, const Matrix< T > &b)
template<typename T>
LU_det (const Matrix< T > &lu)
 calculates determinant of an already LU decomposed Matrix
template<typename T>
lu_det (Matrix< T > &mat)
 calculates determinant of a Matrix by LU decomposition
template<typename T>
TMatrix< T > LU_invert (const Matrix< T > &mat)
 Returns the inverse of a already LU decomposed Matrix.
template<typename T>
TMatrix< T > lu_invert (Matrix< T > &mat)
 Returns the inverse of a Matrix by performing a LU decomposition.
template<typename T, typename SysMatrix, typename SysVector>
int QMR (const SysMatrix &A, SysVector &x, const SysVector &b, const Preconditioner_Sig< T, SysMatrix > &M1, const Preconditioner_Sig< T, SysMatrix > &M2, unsigned int &max_iter, double &tol)
int lu_solve (CSCMatrix< double > &M, Vector< double > &x, const Vector< double > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
TVector< double > lu_solve (CSCMatrix< double > &M, const Vector< double > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
int lu_solve (CSCMatrix< std::complex< double > > &M, Vector< std::complex< double > > &x, const Vector< std::complex< double > > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
 SuperLU solver wrapper for std::complex numbers.
TVector< std::complex< double > > lu_solve (CSCMatrix< std::complex< double > > &M, const Vector< std::complex< double > > &rhs, colperm_t permc_spec=NATURAL, bool verbose=false, bool symm=false)
template<typename ARG>
double sv_decomp_pythag (ARG a, ARG b)
 Calculate sqrt (a^2 + b^2) avoiding under/overflows.
template<typename MatrixType, typename VectorType>
void sv_decomp (MatrixType &A, MatrixType &V, VectorType &W)
 Singular Value Decomposition Decomposes matrix A into U * diag(W) * V^T A is overwritten with U.
template<typename MatrixType, typename VectorType>
void sv_decomp_backsub (const MatrixType &U, const MatrixType &V, const VectorType &W, const VectorType &b, VectorType &x)
template<typename VectorType>
static int fix_condition (VectorType &vec, const double cndno=1e-12)
template<typename MatrixType, typename VectorType>
VectorType svd_solve (const MatrixType &mat, const VectorType &b, const double cndno=1e-12)
 The interface to use the SVD solver: Solve the equation mat * x = b.
template<typename MatrixType, typename T>
TVector< T > sv_decomp_backsub (const MatrixType &U, const MatrixType &V, const Vector< T > &W, const Vector< T > &b)
template<typename MatrixType, typename T>
TVector< T > svd_solve (const MatrixType &mat, const Vector< T > &b, const double cndno=1e-12)
 The interface to use the SVD solver: Solve the equation mat * x = b.
F_TMatrix< cplx< double > > inv (const F_Matrix< cplx< double > > &A, int overwriteA)
F_TMatrix< cplx< double > > lu_solve (const F_Matrix< cplx< double > > &A, const F_Matrix< cplx< double > > &B, int overwriteA)
int eig (const F_Matrix< cplx< double > > &A, Vector< cplx< double > > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A
int eig (const F_Matrix< cplx< double > > &A, Vector< cplx< double > > &EW, F_Matrix< cplx< double > > &EV)
F_TMatrix< std::__complex__
float< double > > 
inv (const F_Matrix< std::__complex__ float< double > > &A, int overwriteA)
F_TMatrix< std::__complex__
float< double > > 
lu_solve (const F_Matrix< std::__complex__ float< double > > &A, const F_Matrix< std::__complex__ float< double > > &B, int overwriteA)
int eig (const F_Matrix< std::__complex__ float< double > > &A, Vector< std::__complex__ float< double > > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A
int eig (const F_Matrix< std::__complex__ float< double > > &A, Vector< std::__complex__ float< double > > &EW, F_Matrix< std::__complex__ float< double > > &EV)
int eig (const F_BandMatrix< std::__complex__ float< double > > &A, const F_BandMatrix< std::__complex__ float< double > > &B, double EW_min, double EW_max, Vector< double > &Eigenwerte, F_Matrix< std::__complex__ float< double > > &Eigenvectoren)
 selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B
int eig (const F_Matrix< std::__complex__ float< double > > &A, Vector< double > &EW, F_Matrix< std::__complex__ float< double > > &EVec)
 complex hermitean
int eig (F_Matrix< std::__complex__ float< double > > A, Vector< double > &EW)
int lu_solve (CSCMatrix< cplx< double > > &M, Vector< cplx< double > > &x, const Vector< cplx< double > > &rhs, colperm_t permc_spec, bool verbose, bool symm)
TBCI::cplx< double > hyper2geom1 (const TBCI::cplx< double > a, const TBCI::cplx< double > b, const TBCI::cplx< double > c, const TBCI::cplx< double > z)
std::complex< double > hyper2geom1 (const std::complex< double > a, const std::complex< double > b, const std::complex< double > c, const std::complex< double > z)
template int sign< double > (const double &)
template double sqr< double > (const double &)
template double dot< double > (const double &, const double &)
template void _tbci_copy< double > (const unsigned long, double *const, const double *const)
template void _tbci_fill< double > (const unsigned long, double *const, tbci_traits< double >::loop_const_refval_type)
template void SWAP< double > (double &, double &)
void __tbci_throw_exception0_VecErr () __attribute__((weak))
void __tbci_throw_exception1_VecErr () __attribute__((weak))
void __tbci_throw_exception2_VecErr () __attribute__((weak))
void __tbci_throw_exception0_FSVecErr () __attribute__((weak))
void __tbci_throw_exception1_FSVecErr () __attribute__((weak))
void __tbci_throw_exception2_FSVecErr () __attribute__((weak))
void __tbci_throw_exception0_MatErr () __attribute__((weak))
void __tbci_throw_exception1_MatErr () __attribute__((weak))
void __tbci_throw_exception2_MatErr () __attribute__((weak))
void __tbci_throw_exception0_BdMatrixErr () __attribute__((weak))
void __tbci_throw_exception1_BdMatrixErr () __attribute__((weak))
void __tbci_throw_exception2_BdMatrixErr () __attribute__((weak))
void __tbci_throw_exception0_IdxErr () __attribute__((weak))
void __tbci_throw_exception1_IdxErr () __attribute__((weak))
void __tbci_throw_exception2_IdxErr () __attribute__((weak))
void __tbci_throw_exception0_TensErr () __attribute__((weak))
void __tbci_throw_exception1_TensErr () __attribute__((weak))
void __tbci_throw_exception2_TensErr () __attribute__((weak))
void __tbci_throw_exception0_CRMatErr () __attribute__((weak))
void __tbci_throw_exception1_CRMatErr () __attribute__((weak))
void __tbci_throw_exception2_CRMatErr () __attribute__((weak))
void __tbci_throw_exception0_CSCMatErr () __attribute__((weak))
void __tbci_throw_exception1_CSCMatErr () __attribute__((weak))
void __tbci_throw_exception2_CSCMatErr () __attribute__((weak))
void __tbci_throw_exception0_F_BandMatErr () __attribute__((weak))
void __tbci_throw_exception1_F_BandMatErr () __attribute__((weak))
void __tbci_throw_exception2_F_BandMatErr () __attribute__((weak))
static int detect_num_cpu ()
static int loadavg ()
void pthr_cond_signal_mutex (pthread_cond_t *cond, pthread_mutex_t *mut, volatile int *done)
int pthr_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mut, volatile int *valptr)
void lina_err (struct thr_ctrl *tc)
void lina_empty (struct thr_ctrl *dummy)
void * empty_thread (void *dummy)
void pthread_mutex_bug_abort (struct thr_ctrl *tc, int err, const char *where)
void * lina_thread (void *thr)
void _thread_start_off (const int thr_no, thr_job_t job, const unsigned long off, const unsigned long sz, va_list vl)

Variables

struct
TBCI::tbci_memalloc_cache_tls 
aligned
pid_t main_thread_pid = 0
bool bound_main = false
int num_threads = 0
struct thr_ctrlthreads = 0
int ismainthread = 1
int thrno = 0
struct thr_ctrlthis_thread = 0
int threads_busy = 0
bool threads_bound = false
static List< cbackthread_cbacks
unsigned long poll_succ = 0
unsigned long poll_fail = 0
unsigned long polls_succ = 0
unsigned long polls_fail = 0
int tot_cpu_tm


Detailed Description

The TBCI Numerical Library is put into TBCI namespace, if the compiler supports it (egcs-1.1.x and later for example).

Typedef Documentation

typedef void TBCI::cbackfn(void *ptr, const int thr)

Definition at line 215 of file smp.h.

typedef char* TBCI::charptr

Definition at line 611 of file malloc_cache.h.

typedef std::complex< double > TBCI::COMPLEX_DOUBLE

Definition at line 18 of file lapack.h.

typedef double TBCI::cplx_base

Definition at line 28 of file builtin_cplx.h.

typedef __complex__ double TBCI::cplx_t

Definition at line 31 of file builtin_cplx.h.

typedef double* TBCI::doubleptr

Definition at line 598 of file malloc_cache.h.

typedef float* TBCI::floatptr

Definition at line 601 of file malloc_cache.h.

typedef int* TBCI::intptr

Definition at line 607 of file malloc_cache.h.

typedef long* TBCI::longptr

Definition at line 616 of file malloc_cache.h.

typedef std:: complex<double>* TBCI::stdcomplexdoubleptr

Definition at line 230 of file std_cplx.h.

typedef std:: complex<float>* TBCI::stdcomplexfloatptr

Definition at line 233 of file std_cplx.h.

typedef void(* TBCI::thr_job_t)(struct thr_ctrl *)

Definition at line 112 of file smp.h.

typedef unsigned char* TBCI::ucharptr

Definition at line 613 of file malloc_cache.h.

typedef unsigned int* TBCI::uintptr

Definition at line 604 of file malloc_cache.h.

typedef unsigned long* TBCI::ulongptr

Definition at line 619 of file malloc_cache.h.

typedef void*(* TBCI::useful_job_t)(void *)

Definition at line 113 of file smp.h.

typedef enum _vararg TBCI::vararg

Definition at line 1141 of file basics.h.

typedef void* TBCI::voidptr

Definition at line 622 of file malloc_cache.h.


Enumeration Type Documentation

This is a helper type to identify and count varargs.

Enumerator:
vag0 
vag1 
vag2 
vag3 
vag4 
vag5 
vag6 
vag7 
vag8 
vag9 
vag10 
vag11 
vag12 
vag13 
vag14 
vag15 
vag16 

Definition at line 1139 of file basics.h.

Enumerator:
rowvec 
colvec 

Definition at line 70 of file matrix.h.


Function Documentation

volatile unsigned err_ptr TBCI::__attribute__ ( (weak)   ) 

void TBCI::__tbci_throw_exception0_BdMatrixErr (  ) 

Definition at line 62 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_CRMatErr (  ) 

Definition at line 65 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_CSCMatErr (  ) 

Definition at line 66 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_F_BandMatErr (  ) 

Definition at line 67 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_FSVecErr (  ) 

Definition at line 60 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_IdxErr (  ) 

Definition at line 63 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_MatErr (  ) 

Definition at line 61 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_TensErr (  ) 

Definition at line 64 of file exceptions.cc.

void TBCI::__tbci_throw_exception0_VecErr (  ) 

Definition at line 59 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_BdMatrixErr (  ) 

Definition at line 62 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_CRMatErr (  ) 

Definition at line 65 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_CSCMatErr (  ) 

Definition at line 66 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_F_BandMatErr (  ) 

Definition at line 67 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_FSVecErr (  ) 

Definition at line 60 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_IdxErr (  ) 

Definition at line 63 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_MatErr (  ) 

Definition at line 61 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_TensErr (  ) 

Definition at line 64 of file exceptions.cc.

void TBCI::__tbci_throw_exception1_VecErr (  ) 

Definition at line 59 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_BdMatrixErr (  ) 

Definition at line 62 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_CRMatErr (  ) 

Definition at line 65 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_CSCMatErr (  ) 

Definition at line 66 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_F_BandMatErr (  ) 

Definition at line 67 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_FSVecErr (  ) 

Definition at line 60 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_IdxErr (  ) 

Definition at line 63 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_MatErr (  ) 

Definition at line 61 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_TensErr (  ) 

Definition at line 64 of file exceptions.cc.

void TBCI::__tbci_throw_exception2_VecErr (  ) 

Definition at line 59 of file exceptions.cc.

template<typename T>
void TBCI::_tbci_copy ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

Definition at line 837 of file basics.h.

template void TBCI::_tbci_copy< double > ( const unsigned  long,
double *  const,
const double *  const 
)

template<typename T>
void TBCI::_tbci_fill ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

Definition at line 848 of file basics.h.

template void TBCI::_tbci_fill< double > ( const unsigned  long,
double *  const,
tbci_traits< double >::loop_const_refval_type   
)

void TBCI::_thread_start_off ( const int  thr_no,
thr_job_t  job,
const unsigned long  off,
const unsigned long  sz,
va_list  vl 
)

template<typename T>
void TBCI::ApplyPlaneRotation ( T &  dx,
T &  dy,
const double &  cs,
const T &  sn 
) [inline]

Definition at line 83 of file gmres.h.

References conj(), CPLX__, and T.

Referenced by GMRES().

template<typename T>
int TBCI::basis_trafo ( long int  value,
long int  basis,
Vector< T > &  index 
) [inline]

Definition at line 73 of file my_nr.h.

References log(), MATH__, TBCI::TVector< T >::size(), sqrt(), and T.

Referenced by grid_min().

template<typename T>
int TBCI::Basis_Trafo ( long int  value,
long int  basis,
Vector< T > &  index 
) [inline]

Definition at line 66 of file LM_fit.h.

References CSTD__, log(), MATH__, TBCI::TVector< T >::size(), sqrt(), and T.

Referenced by Grid_Min_2D().

std::complex< double > TBCI::besselh1 ( double  order,
const std::complex< double > &  z 
)

Definition at line 66 of file specfun_stdcplx.cpp.

References CPLX__, exp(), std::fabs(), LONG_, MATH__, pi, and zbesh_().

cplx< double > TBCI::besselh1 ( double  order,
const cplx< double > &  z 
)

std::complex< double > TBCI::besselh2 ( double  order,
const std::complex< double > &  z 
)

Definition at line 90 of file specfun_stdcplx.cpp.

References CPLX__, exp(), std::fabs(), LONG_, MATH__, pi, and zbesh_().

cplx< double > TBCI::besselh2 ( double  order,
const cplx< double > &  z 
)

std::complex< double > TBCI::besseli ( double  order,
const std::complex< double > &  z 
)

Definition at line 139 of file specfun_stdcplx.cpp.

References besselk(), CPLX__, std::fabs(), LONG_, MATH__, pi, sin(), and zbesi_().

cplx< double > TBCI::besseli ( double  order,
const cplx< double > &  z 
)

std::complex< double > TBCI::besselj ( double  order,
const std::complex< double > &  z 
)

Definition at line 114 of file specfun_stdcplx.cpp.

References bessely(), cos(), CPLX__, std::fabs(), LONG_, MATH__, pi, sin(), and zbesj_().

Referenced by bessely().

cplx< double > TBCI::besselj ( double  order,
const cplx< double > &  z 
)

std::complex< double > TBCI::besselk ( double  order,
const std::complex< double > &  z 
)

Definition at line 164 of file specfun_stdcplx.cpp.

References CPLX__, std::fabs(), LONG_, MATH__, and zbesk_().

Referenced by besseli().

cplx< double > TBCI::besselk ( double  order,
const cplx< double > &  z 
)

std::complex< double > TBCI::bessely ( double  order,
const std::complex< double > &  z 
)

Definition at line 187 of file specfun_stdcplx.cpp.

References besselj(), cos(), CPLX__, std::fabs(), LONG_, MATH__, pi, sin(), and zbesy_().

Referenced by besselj().

cplx< double > TBCI::bessely ( double  order,
const cplx< double > &  z 
)

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::BiCG ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol 
) [inline]

Iterative template solver -- BiCG.

BiCG solves the unsymmetric linear system Ax = b using the Preconditioned BiConjugate Gradient method

BiCG follows the algorithm described on p. 22 of the SIAM Templates book.

Returns:
0 on success (=convergence within max_iter iterations), 1 if no convergence could be found. If the solver breaks down prematurely, it will return a value > 1.
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax = b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration

Definition at line 47 of file bicg.h.

References conj(), MATH__, TBCI::Preconditioner_Sig< T, MatrixType >::solve(), sqr(), sqrt(), TBCI::Preconditioner_Sig< T, MatrixType >::transSolve(), and UNLIKELY.

template<typename T, typename SysMatrix, typename T_tol>
int TBCI::BiCGSTAB ( const SysMatrix &  A,
Vector< T > &  x,
const Vector< T > &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
T_tol &  tol,
const unsigned  off = 0 
) [inline]

BiCGSTAB solves the unsymmetric linear system Ax = b using the Preconditioned BiConjugate Gradient Stabilized method.

BiCGSTAB follows the algorithm described on p. 27 of the SIAM Templates book.

Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1). If the solver breaks down prematurely, it will return a value > 1.
Parameters:
A -- System Matrix with coeffs of linear system to be solved
x -- input: initial guess value; output: approximate solution to Ax = b
b -- Vector (inhomogeneity)
M -- Preconditioner
max_iter -- input: max number of iterations allowed; output: the number of iterations performed before the tolerance was reached
tol -- input: desired accuracy (residual is a measure for the relative error); output: residual after the final iteration
off -- only used when debug output is generated: offset
If you use a preconditioner, don't forget to initialize it with the sys matrix (via constructor or update() member fct.)

BiCGstab is a good general purpose iterative solver; it's convergence is not as fast as CGS, when CGS finally gets on the right path, but it works a bit more reliably and makes progress right from the start.

Definition at line 87 of file bicgstab.h.

References dot(), std::fabs(), fabssqr(), TBCI::Vector< T >::fabssqr(), LIKELY, MATH__, TBCI::Preconditioner_Sig< T, MatrixType >::solve(), sqr(), sqrt(), STD__, TBCI__, and UNLIKELY.

void TBCI::bind_threads ( bool  bind_main = false  ) 

Set scheduling affinity of threads Rather than letting the OS decide which CPU a thread runs on, this makes sure a thread can only run on one CPU.

And it will always be the same CPU, which can have positive effects because of the cache.

Parameters:
bind_main Also bind main thread. Only use if no other parallelization support is used beyond the infrastructure from the TBCI library.

Definition at line 569 of file smp.cc.

References bound_main, main_thread_pid, num_threads, TBCI::thr_ctrl::t_id, and threads_bound.

template<typename T>
BVector<T>& TBCI::bvfillm ( BVector< T > &  bv,
const Matrix< T > &  m 
) [inline]

template<typename T>
TMatrix<T> TBCI::cediv ( const Matrix< T > &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 509 of file vector_extra.h.

References BCHK, TBCI::TMatrix< T >::columns(), and TBCI::TMatrix< T >::rows().

template<typename T>
TVector<T> TBCI::cediv ( const TSVector< T > &  ts1,
const TSVector< T > &  ts2 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( const TSVector< T > &  ts,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( const Vector< T > &  v,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( const TSVector< T > &  ts,
TVector< T >  tv 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( TVector< T >  tv,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( TVector< T >  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( const Vector< T > &  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( TVector< T >  a,
const Vector< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::cediv ( const Vector< T > &  a,
const Vector< T > &  b 
) [inline]

Definition at line 147 of file vector_extra.h.

References BCHK, TBCI::TVector< T >::getcref(), and TBCI::TVector< T >::size().

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::cediv ( const FS_Vector< dims, T > &  f1,
const FS_Vector< dims, T > &  f2 
) [inline]

Definition at line 532 of file fs_vector.h.

References conj(), CPLX__, and dims.

template<typename T>
TMatrix<T> TBCI::cemul ( const Matrix< T > &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 485 of file vector_extra.h.

References BCHK, TBCI::TMatrix< T >::columns(), and TBCI::TMatrix< T >::rows().

template<typename T>
TVector<T> TBCI::cemul ( const TSVector< T > &  ts1,
const TSVector< T > &  ts2 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( const TSVector< T > &  ts,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( const Vector< T > &  v,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( const TSVector< T > &  ts,
TVector< T >  tv 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( TVector< T >  tv,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( TVector< T >  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( const Vector< T > &  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( TVector< T >  a,
const Vector< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::cemul ( const Vector< T > &  a,
const Vector< T > &  b 
) [inline]

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::cemul ( const FS_Vector< dims, T > &  f1,
const FS_Vector< dims, T > &  f2 
) [inline]

Definition at line 514 of file fs_vector.h.

References conj(), CPLX__, and dims.

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::CG ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol 
) [inline]

Iterative template solver routine -- CG.

CG solves the symmetric positive definite linear system Ax=b using the Conjugate Gradient method.

CG follows the algorithm described on p. 15 in the SIAM Templates book.

Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1).
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax = b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration

Definition at line 45 of file cg.h.

References dot(), and TBCI::Preconditioner_Sig< T, MatrixType >::solve().

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::CG2 ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol 
) [inline]

CG2 solves the symmetric complex (positive definite?) linear system Ax=b using the Conjugate Gradient method.

Definition at line 112 of file cg.h.

References TBCI::Preconditioner_Sig< T, MatrixType >::solve().

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::CGS ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol,
const unsigned  off = 0 
) [inline]

Iterative template routine -- CGS.

CGS solves the unsymmetric linear system Ax = b using the Conjugate Gradient Squared method

CGS follows the algorithm described on p. 26 of the SIAM Templates book.

Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1). If the solver breaks down prematurely, it will return a value > 1.
Arguments:

Parameters:
A -- System Matrix, contains the coeffs of the linear system
x -- input: initial guess value for solution; output: approximate solution to Ax = b
b -- Vector (inhomogeneity)
M -- Preconditioner
max_iter -- input: max number of iterations allowed; output: the number of iterations performed before the tolerance was reached
tol -- input: desired residual (measurement for relative error); output: the residual after the final iteration
off -- Only used for solver logging: offset counter
If you use a preconditioner, don't forget to initialize it with the sys matrix (via constructor or update() member fct.)

Definition at line 70 of file cgs.h.

References dot(), MATH__, TBCI::Preconditioner_Sig< T, MatrixType >::solve(), sqr(), sqrt(), STD__, and TBCI__.

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::CHEBY ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol,
eigmin,
eigmax 
) [inline]

Iterative template routine -- CHEBY.

CHEBY solves the symmetric positive definite linear system Ax = b using the Preconditioned Chebyshev Method

CHEBY follows the algorithm described on p. 30 of the SIAM Templates book.

Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1).
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax = b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration

Definition at line 60 of file cheby.h.

References TBCI::Preconditioner_Sig< T, MatrixType >::solve(), T, and VALUE_TYPE.

template<typename T>
T TBCI::chisq ( Vector< T > &  data,
Vector< T > &  func,
Vector< T > &  sig 
) [inline]

Definition at line 159 of file my_nr.h.

References ALIGN, MIN_ALIGN, TBCI::TVector< T >::size(), sqr(), and T.

Referenced by grid_min().

template<typename T>
T TBCI::Chisq ( Vector< T > &  data,
Vector< T > &  func,
Vector< T > &  sig 
) [inline]

Definition at line 155 of file LM_fit.h.

References ALIGN, MIN_ALIGN, TBCI::TVector< T >::size(), sqr(), and T.

Referenced by Grid_Min_2D().

template<typename T>
T TBCI::chisquare ( T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T > &  param,
Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  sigma 
) [inline]

Definition at line 172 of file my_nr.h.

References ALIGN, std::arg(), MIN_ALIGN, TBCI::TVector< T >::size(), sqr(), T, and y.

Referenced by lev_mar().

template<typename T>
T TBCI::Chisquare_2D ( T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T > &  param,
Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  z,
Vector< T > &  sigma 
) [inline]

Parameters:
sigma  calculates function values of func at position x with params param and return chisq with given y values weighted with sigmas

Definition at line 172 of file LM_fit.h.

References ALIGN, std::arg(), MIN_ALIGN, TBCI::TVector< T >::size(), sqr(), T, and y.

template<typename T>
BVector<T> TBCI::concat ( const BVector< T > &  b1,
const BVector< T > &  b2 
) [inline]

Definition at line 603 of file bvector.h.

References TBCI::BVector< T >::concat().

template<typename T>
TVector<T> TBCI::conj ( const Vector< T > &  v  )  [inline]

Definition at line 897 of file vector.h.

References TBCI::TVector< T >::conj, CPLX__, and TBCI::TVector< T >::size().

Referenced by ApplyPlaneRotation(), BiCG(), cediv(), cemul(), and dot().

template<typename T>
TVector<T>& TBCI::conj ( TVector< T > &  tv  )  [inline]

template<typename T>
Tensor<T> TBCI::ctrmul ( const Tensor< T > &  t1,
const Tensor< T > &  t2,
const unsigned  i1,
const unsigned  i2 
) [inline]

template<typename T>
Tensor<T> TBCI::dctmul ( const Tensor< T > &  t0,
const Tensor< T > &  t1 
) [inline]

static int TBCI::detect_num_cpu (  )  [static]

Definition at line 231 of file smp.cc.

References CSTD__.

Referenced by init_threads().

void TBCI::disable_threads (  ) 

Switch off multithreading.

Definition at line 807 of file smp.cc.

References threads_busy.

template<typename T>
void TBCI::do_add_vec_vec_cmul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

Definition at line 275 of file vec_kern_unr_pref.h.

Referenced by do_bdmat_vec_dotmult().

template<typename T>
void TBCI::do_add_vec_vec_mul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

Definition at line 273 of file vec_kern_unr_pref.h.

Referenced by do_bdmat_vec_mult(), and do_bdmat_vec_transmult().

template<typename T>
void TBCI::do_bdmat_vec_dotmult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const BdMatrix< T > *  mat,
const Vector< T > *  vec 
) [inline]

template<typename T>
void TBCI::do_bdmat_vec_mult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const BdMatrix< T > *  mat,
const Vector< T > *  vec 
) [inline]

template<typename T>
void TBCI::do_bdmat_vec_transmult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const BdMatrix< T > *  mat,
const Vector< T > *  vec 
) [inline]

template<typename T>
F_BandMatrix<T> TBCI::do_fbdmat_scale ( const T  z,
const F_BandMatrix< T > &  m 
) [inline]

template<typename T>
F_BandMatrix<T> TBCI::do_fbdmat_scale ( const F_BandMatrix< T > &  m,
const T  z 
) [inline]

template<typename T>
TVector<T> TBCI::do_fbdmat_vec_mul ( const F_BandMatrix< T > &  m,
const Vector< T > &  v 
) [inline]

template<typename T>
void TBCI::do_mat_tsv_mult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const Matrix< T > *  mat,
const TSVector< T > *  vec 
) [inline]

template<typename T>
void TBCI::do_mat_vec_mult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const Matrix< T > *  mat,
const Vector< T > *  vec 
) [inline]

template<typename T>
void TBCI::do_mat_vec_transmult ( const unsigned  start,
const unsigned  end,
TVector< T > *  res,
const Matrix< T > *  mat,
const Vector< T > *  vec 
) [inline]

template<typename T>
void TBCI::do_nothing ( dummy  )  [inline]

Definition at line 41 of file my_nr.h.

template<typename T>
void TBCI::do_svc_add_svc ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec *= s; vec += s*vec;

Definition at line 197 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_add_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec; vec += val;

Definition at line 215 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_add_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec *= s; vec += vec;

Definition at line 188 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_sub_svc ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec *= s; vec -= s*vec;

Definition at line 201 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_sub_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec; vec -= val;

Definition at line 219 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_sub_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec *= s; vec -= vec;

Definition at line 192 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_svc_svc_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec + s*vec;

Definition at line 179 of file vec_kern_unr_pref.h.

Referenced by job_svc_svc_add().

template<typename T>
void TBCI::do_svc_svc_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec - s*vec;

Definition at line 183 of file vec_kern_unr_pref.h.

Referenced by job_svc_svc_sub().

template<typename T>
void TBCI::do_svc_val_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec + val

Definition at line 206 of file vec_kern_unr_pref.h.

Referenced by job_svc_val_add().

template<typename T>
void TBCI::do_svc_val_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec - val

Definition at line 210 of file vec_kern_unr_pref.h.

Referenced by job_svc_val_sub().

template<typename T>
void TBCI::do_svc_vec_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec + vec;

Definition at line 170 of file vec_kern_unr_pref.h.

Referenced by job_svc_vec_add().

template<typename T>
void TBCI::do_svc_vec_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = s*vec - vec;

Definition at line 174 of file vec_kern_unr_pref.h.

Referenced by job_svc_vec_sub().

template<typename T>
void TBCI::do_val_add_vec ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec += val

Definition at line 138 of file vec_kern_unr_pref.h.

Referenced by job_val_add_vec().

template<typename T>
void TBCI::do_val_div_vec ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val / vec;

Definition at line 134 of file vec_kern_unr_pref.h.

Referenced by job_val_div_vec().

template<typename T>
void TBCI::do_val_sub_vec ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec -= val; vec = -vec;

Definition at line 122 of file vec_kern_unr_pref.h.

Referenced by job_val_sub_vec().

template<typename T>
void TBCI::do_val_svc_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val + s*vec;

Definition at line 224 of file vec_kern_unr_pref.h.

Referenced by job_val_svc_add().

template<typename T>
void TBCI::do_val_svc_div ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val / s*vec;

Definition at line 232 of file vec_kern_unr_pref.h.

Referenced by job_val_svc_div().

template<typename T>
void TBCI::do_val_svc_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val - s*vec;

Definition at line 228 of file vec_kern_unr_pref.h.

Referenced by job_val_svc_sub().

template<typename T>
void TBCI::do_val_vec_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val + vec;

Definition at line 97 of file vec_kern_unr_pref.h.

Referenced by job_val_vec_add().

template<typename T>
void TBCI::do_val_vec_div ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val / vec;

Definition at line 109 of file vec_kern_unr_pref.h.

Referenced by job_val_vec_div().

template<typename T>
void TBCI::do_val_vec_mul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val * vec;

Definition at line 105 of file vec_kern_unr_pref.h.

Referenced by job_val_vec_mul().

template<typename T>
void TBCI::do_val_vec_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = val - vec;

Definition at line 101 of file vec_kern_unr_pref.h.

Referenced by job_val_vec_sub().

template<typename T>
void TBCI::do_vec_add_svc ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec += val*vec

Definition at line 148 of file vec_kern_unr_pref.h.

Referenced by job_vec_add_svc().

template<typename T>
void TBCI::do_vec_add_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec += val;

Definition at line 114 of file vec_kern_unr_pref.h.

Referenced by job_vec_add_val().

template<typename T>
void TBCI::do_vec_add_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec += vec;

Definition at line 42 of file vec_kern_unr_pref.h.

Referenced by job_vec_add_vec().

template<typename T>
void TBCI::do_vec_cdiv_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec /= conj(vec); (cediv)

Definition at line 74 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_cdiv_vec_inv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec /= conj(vec); (cediv)

Definition at line 78 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_cmul_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec *= conj(vec); (cemul)

Definition at line 58 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_cmul_vec_inv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec *= conj(vec); (cemul)

Definition at line 62 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_div_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec /= val;

Definition at line 130 of file vec_kern_unr_pref.h.

Referenced by job_vec_div_val().

template<typename T>
void TBCI::do_vec_div_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec /= vec; (ediv)

Definition at line 66 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_div_vec_inv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec /= vec; (ediv)

Definition at line 70 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_dot ( const unsigned long  sz,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
T &  _f2 
) [inline]

val = SUM vec * ~vec;

Definition at line 246 of file vec_kern_unr_pref.h.

Referenced by job_vec_dot().

template<typename T>
void TBCI::do_vec_fabssqr ( const unsigned long  sz,
const T *  res,
long double &  _f2 
) [inline]

val = SUM fabssqr vec ;

Definition at line 255 of file vec_kern_unr_pref.h.

Referenced by TBCI::Matrix< T >::fabssqr(), TBCI::TSMatrix< T >::fabssqr(), and job_vec_fabssqr().

template<typename T>
void TBCI::do_vec_mul_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec *= val;

Definition at line 126 of file vec_kern_unr_pref.h.

Referenced by job_vec_mul_val().

template<typename T>
void TBCI::do_vec_mul_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec *= vec; (emul)

Definition at line 54 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_mult ( const unsigned long  sz,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
T &  _f2 
) [inline]

val = SUM vec * vec;

Definition at line 250 of file vec_kern_unr_pref.h.

Referenced by job_vec_mult().

template<typename T>
void TBCI::do_vec_neg ( const unsigned long  sz,
T *__restrict__ const   res 
) [inline]

vec = -vec

Definition at line 241 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_neg_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec = -vec

Definition at line 237 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_sub_svc ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec -= val*vec

Definition at line 152 of file vec_kern_unr_pref.h.

Referenced by job_vec_sub_svc().

template<typename T>
void TBCI::do_vec_sub_svc_inv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec -= val*vec

Definition at line 156 of file vec_kern_unr_pref.h.

Referenced by job_vec_sub_svc_inv().

template<typename T>
void TBCI::do_vec_sub_val ( const unsigned long  sz,
T *__restrict__ const   res,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec -= val;

Definition at line 118 of file vec_kern_unr_pref.h.

Referenced by job_vec_sub_val().

template<typename T>
void TBCI::do_vec_sub_vec ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec -= vec;

Definition at line 46 of file vec_kern_unr_pref.h.

Referenced by job_vec_sub_vec().

template<typename T>
void TBCI::do_vec_sub_vec_inv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1 
) [inline]

vec -= vec; vec = -vec;

Definition at line 50 of file vec_kern_unr_pref.h.

Referenced by job_vec_sub_vec_inv().

template<typename T>
void TBCI::do_vec_sum ( const unsigned long  sz,
const T *  res,
T &  _f2 
) [inline]

val = SUM vec ;

Definition at line 263 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_sumsqr ( const unsigned long  sz,
const T *  res,
T &  _f2 
) [inline]

val = SUM sqr vec ;

Definition at line 259 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_svc_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = vec + s*vec;

Definition at line 161 of file vec_kern_unr_pref.h.

Referenced by job_vec_svc_add().

template<typename T>
void TBCI::do_vec_svc_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = vec - s*vec;

Definition at line 165 of file vec_kern_unr_pref.h.

Referenced by job_vec_svc_sub().

template<typename T>
void TBCI::do_vec_val_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = vec + val

Definition at line 84 of file vec_kern_unr_pref.h.

Referenced by job_vec_val_add().

template<typename T>
void TBCI::do_vec_val_mul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = vec * val;

Definition at line 92 of file vec_kern_unr_pref.h.

Referenced by job_vec_val_mul().

template<typename T>
void TBCI::do_vec_val_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
register typename tbci_traits< T >::loop_const_refval_type  f2 
) [inline]

vec = vec - val

Definition at line 88 of file vec_kern_unr_pref.h.

Referenced by job_vec_val_sub().

template<typename T>
void TBCI::do_vec_vec_add ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = vec + vec;

Definition at line 17 of file vec_kern_unr_pref.h.

Referenced by job_vec_vec_add().

template<typename T>
void TBCI::do_vec_vec_cdiv ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = cediv(vec, vec);

Definition at line 37 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_vec_cmul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = cemul(vec, vec);

Definition at line 29 of file vec_kern_unr_pref.h.

Referenced by do_bdmat_vec_dotmult().

template<typename T>
void TBCI::do_vec_vec_div ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = ediv (vec, vec);

Definition at line 33 of file vec_kern_unr_pref.h.

template<typename T>
void TBCI::do_vec_vec_mul ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = emul (vec, vec);

Definition at line 25 of file vec_kern_unr_pref.h.

Referenced by do_bdmat_vec_mult(), and do_bdmat_vec_transmult().

template<typename T>
void TBCI::do_vec_vec_sub ( const unsigned long  sz,
T *__restrict__ const   res,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2 
) [inline]

vec = vec - vec;

Definition at line 21 of file vec_kern_unr_pref.h.

Referenced by job_vec_vec_sub().

template<typename T>
void TBCI::do_vv_comp ( const unsigned long  sz,
const T *__restrict__ const   v1,
const T *__restrict__ const   v2,
volatile long &  _f2 
) [inline]

f2 = number of differences vec, vec

Definition at line 268 of file vec_kern_unr_pref.h.

Referenced by job_vv_comp().

template<typename T>
T TBCI::dot ( const Vector< T > &  a,
const Vector< T > &  b 
) [inline]

template<unsigned dims, typename T>
T TBCI::dot ( const FS_Vector< dims, T > &  fv1,
const FS_Vector< dims, T > &  fv2 
) [inline]

Definition at line 466 of file fs_vector.h.

References ALIGN3, conj(), CPLX__, dims, MIN_ALIGN2, and T.

template<typename T>
cplx<T> TBCI::dot ( const cplx< T > &  a,
const cplx< T > &  b 
) [inline]

Definition at line 300 of file cplx.h.

References TBCI::cplx< T >::im.

cplx_t TBCI::dot ( const cplx_t  a,
const cplx_t  b 
) [inline]

Definition at line 140 of file builtin_cplx.h.

template<typename T>
T TBCI::dot ( const T &  a1,
const T &  a2 
) const [inline]

Definition at line 1050 of file basics.h.

References conj(), and CPLX__.

template double TBCI::dot< double > ( const double &  ,
const double &   
)

template<typename T>
TMatrix<T> TBCI::ediv ( const T &  a,
const TSMatrix< T > &  ts 
) [inline]

Definition at line 540 of file vector_extra.h.

References TBCI::TSMatrix< T >::detach(), STD_SMP_TEMPLATE4C, and T.

Referenced by cediv(), and ediv().

template<typename T>
TMatrix<T> TBCI::ediv ( const T &  a,
const Matrix< T > &  b 
) [inline]

template<typename T>
TMatrix<T> TBCI::ediv ( const T &  a,
TMatrix< T >  b 
) [inline]

Definition at line 522 of file vector_extra.h.

References STD_SMP_TEMPLATE2C.

template<typename T>
TMatrix<T> TBCI::ediv ( const Matrix< T > &  a,
const Matrix< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const T &  a,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const T &  a,
const Vector< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const T &  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const TSVector< T > &  ts,
TVector< T >  tv 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const TSVector< T > &  ts,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const TSVector< T > &  ts1,
const TSVector< T > &  ts2 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const Vector< T > &  v,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( TVector< T >  tv,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( TVector< T >  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const Vector< T > &  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( TVector< T >  a,
const Vector< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::ediv ( const Vector< T > &  a,
const Vector< T > &  b 
) [inline]

Definition at line 110 of file vector_extra.h.

References BCHK, TBCI::TVector< T >::getcref(), and TBCI::TVector< T >::size().

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::ediv ( const FS_Vector< dims, T > &  f1,
const FS_Vector< dims, T > &  f2 
) [inline]

Definition at line 523 of file fs_vector.h.

References dims.

int TBCI::eig ( F_Matrix< std::__complex__ float< double > >  A,
Vector< double > &  EW 
)

Definition at line 294 of file lapack_stdcplx.cpp.

References TBCI::BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

int TBCI::eig ( const F_Matrix< std::__complex__ float< double > > &  A,
Vector< double > &  EW,
F_Matrix< std::__complex__ float< double > > &  EVec 
)

complex hermitean

Definition at line 266 of file lapack_stdcplx.cpp.

References TBCI::BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

int TBCI::eig ( const F_BandMatrix< std::__complex__ float< double > > &  A,
const F_BandMatrix< std::__complex__ float< double > > &  B,
double  EW_min,
double  EW_max,
Vector< double > &  Eigenwerte,
F_Matrix< std::__complex__ float< double > > &  Eigenvectoren 
)

selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B

Definition at line 145 of file lapack_stdcplx.cpp.

References CPLX__, doublecomplex::i, imag(), own_ev_(), own_ew_(), doublecomplex::r, real, TBCI::BVector< T >::resize(), STD__, and y.

int TBCI::eig ( const F_Matrix< std::__complex__ float< double > > &  A,
Vector< std::__complex__ float< double > > &  EW,
F_Matrix< std::__complex__ float< double > > &  EV 
)

Definition at line 121 of file lapack_stdcplx.cpp.

References doublereal, integer, NEW, TBCIDELETE, and zgeev_().

int TBCI::eig ( const F_Matrix< std::__complex__ float< double > > &  A,
Vector< std::__complex__ float< double > > &  EW 
)

eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A

Definition at line 100 of file lapack_stdcplx.cpp.

References doublereal, integer, NEW, TBCIDELETE, and zgeev_().

int TBCI::eig ( const F_Matrix< cplx< double > > &  A,
Vector< cplx< double > > &  EW,
F_Matrix< cplx< double > > &  EV 
)

Definition at line 395 of file lapack.cpp.

References doublereal, integer, NEW, TBCIDELETE, and zgeev_().

int TBCI::eig ( const F_Matrix< cplx< double > > &  A,
Vector< cplx< double > > &  EW 
)

eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A

Definition at line 374 of file lapack.cpp.

References doublereal, integer, NEW, TBCIDELETE, and zgeev_().

int TBCI::eig ( const F_BandMatrix< std::complex< double > > &  A,
const F_BandMatrix< std::complex< double > > &  B,
double  EW_min,
double  EW_max,
Vector< double > &  Eigenwerte,
F_Matrix< std::complex< double > > &  Eigenvectoren 
)

int TBCI::eig ( const F_Matrix< std::complex< double > > &  A,
Vector< double > &  EW,
F_Matrix< std::complex< double > > &  EVec 
)

int TBCI::eig ( F_Matrix< std::complex< double > >  A,
Vector< double > &  EW 
)

int TBCI::eig ( const F_BandMatrix< cplx< double > > &  A,
const F_BandMatrix< cplx< double > > &  B,
double  EW_min,
double  EW_max,
Vector< double > &  Eigenwerte,
F_Matrix< cplx< double > > &  Eigenvectoren 
)

selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B

Definition at line 419 of file lapack.cpp.

References CPLX__, doublecomplex::i, imag(), own_ev_(), own_ew_(), doublecomplex::r, real, TBCI::BVector< T >::resize(), STD__, and y.

int TBCI::eig ( const F_Matrix< COMPLEX_DOUBLE > &  A,
Vector< COMPLEX_DOUBLE > &  EW,
F_Matrix< COMPLEX_DOUBLE > &  EV 
)

int TBCI::eig ( const F_Matrix< COMPLEX_DOUBLE > &  A,
Vector< COMPLEX_DOUBLE > &  EW 
)

int TBCI::eig ( const F_Matrix< cplx< double > > &  A,
Vector< double > &  EW,
F_Matrix< cplx< double > > &  EVec 
)

complex hermitean

Definition at line 539 of file lapack.cpp.

References TBCI::BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

int TBCI::eig ( F_Matrix< cplx< double > >  A,
Vector< double > &  EW 
)

Definition at line 567 of file lapack.cpp.

References TBCI::BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

int TBCI::eig ( const F_BandMatrix< double > &  A,
Vector< double > &  EW,
F_Matrix< double > &  EV,
double  ew_min,
double  ew_max 
)

int TBCI::eig ( const F_BandMatrix< double > &  A,
Vector< double > &  EW,
F_Matrix< double > &  EV 
)

int TBCI::eig ( const F_Matrix< double > &  A,
Vector< double > &  EW,
F_Matrix< double > &  EV 
)

int TBCI::eig ( const F_Matrix< double > &  A,
Vector< double > &  EW 
)

eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A

Definition at line 263 of file lapack.cpp.

References TBCI::F_Matrix< T >::columns(), dsyev_(), TBCI::F_Matrix< T >::get_fortran_matrix(), TBCI::BVector< T >::get_fortran_vector(), and integer.

void* TBCI::empty_thread ( void *  dummy  ) 

Definition at line 393 of file smp.cc.

References NULL.

template<typename T>
TMatrix<T> TBCI::emul ( const Matrix< T > &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 473 of file vector_extra.h.

References BCHK, TBCI::TMatrix< T >::columns(), and TBCI::TMatrix< T >::rows().

Referenced by cemul(), and emul().

template<typename T>
TVector<T> TBCI::emul ( const TSVector< T > &  ts1,
const TSVector< T > &  ts2 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( const TSVector< T > &  ts,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( const Vector< T > &  v,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( const TSVector< T > &  ts,
TVector< T >  tv 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( TVector< T >  tv,
const TSVector< T > &  ts 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( TVector< T >  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( const Vector< T > &  a,
TVector< T >  b 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( TVector< T >  a,
const Vector< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::emul ( const Vector< T > &  a,
const Vector< T > &  b 
) [inline]

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::emul ( const FS_Vector< dims, T > &  f1,
const FS_Vector< dims, T > &  f2 
) [inline]

Definition at line 505 of file fs_vector.h.

References dims.

template<typename T>
cplx<T> TBCI::expi ( const T  phi  )  [inline]

Definition at line 460 of file cplx.h.

References ALIGN, TBCI::cplx< T >::cos(), MATH__, MIN_ALIGN, pi, TBCI::cplx< T >::sin(), and T.

Referenced by std::exp(), sqr(), and std::sqrt().

cplx_t TBCI::expi ( const cplx_base  phi  )  [inline]

Definition at line 229 of file builtin_cplx.h.

References cos(), MATH__, pi2, and sin().

Referenced by TBCI::cplx< T >::exp(), polar(), TBCI::cplx< T >::power(), and TBCI::cplx< T >::sqrt().

template<typename Matrix>
void TBCI::expm ( const Matrix &  exponent,
Matrix &  E 
) [inline]

Definition at line 57 of file expm.h.

References lu_solve(), MAX, norm_1(), std::pow(), TBCI::TMatrix< T >::rows(), and TBCI__.

template<typename MatrixIn, typename MatrixOut>
void TBCI::expm2 ( const MatrixIn &  exponent,
MatrixOut &  erg,
double  ERROR = 1e-3 
) [inline]

Definition at line 116 of file expm.h.

References MAX, norm_1(), and std::pow().

template<typename MatrixIn, typename MatrixOut>
void TBCI::expm3 ( const MatrixIn &  exponent,
MatrixOut &  erg,
double  ERROR = 1e-3 
) [inline]

Definition at line 167 of file expm.h.

References std::fabs(), MATH__, MAX, norm_1(), std::pow(), and STD__.

template<typename T>
double TBCI::fabssqr ( TVector< T >  tv  )  [inline]

template<typename T>
double TBCI::fabssqr ( const TSVector< T > &  ts  )  [inline]

Definition at line 1485 of file vector.h.

References TBCI::TSVector< T >::fabssqr().

template<typename T>
double TBCI::fabssqr ( const Vector< T > &  v  )  [inline]

Definition at line 2312 of file vector.h.

References TBCI::Vector< T >::fabssqr().

template<typename T>
double TBCI::fabssqr ( const std::complex< T > &  a  )  [inline]

Definition at line 38 of file std_cplx.h.

template<typename T>
double TBCI::fabssqr ( const Matrix< T > &  m  )  [inline]

Definition at line 2093 of file matrix.h.

References TBCI::Matrix< T >::fabssqr().

template<typename T>
double TBCI::fabssqr ( TSMatrix< T > &  tsm  )  [inline]

Definition at line 1530 of file matrix.h.

References TBCI::TSMatrix< T >::fabssqr().

template<typename T>
double TBCI::fabssqr ( const TMatrix< T > &  tm  )  [inline]

Definition at line 1048 of file matrix.h.

References TBCI::TMatrix< T >::fabssqr().

template<unsigned dims, typename T>
double TBCI::fabssqr ( const FS_Vector< dims, T > &  fv  )  [inline]

Definition at line 543 of file fs_vector.h.

References TBCI::FS_Vector< dims, T >::fabssqr().

template<typename T>
double TBCI::fabssqr ( const cplx< T > &  c  )  [inline]

Definition at line 390 of file cplx.h.

References TBCI::cplx< T >::fabssqr().

double TBCI::fabssqr ( const TBCI::hcplx c  )  [inline]

Definition at line 95 of file builtin_cplx.h.

double TBCI::fabssqr ( const cplx_t &  a  )  [inline]

Definition at line 92 of file builtin_cplx.h.

double TBCI::fabssqr ( const long long  a  )  const [inline]

Definition at line 1032 of file basics.h.

double TBCI::fabssqr ( const long double  a  )  const [inline]

Definition at line 1029 of file basics.h.

double TBCI::fabssqr ( const unsigned  a  )  const [inline]

Definition at line 1027 of file basics.h.

double TBCI::fabssqr ( const int  a  )  const [inline]

Definition at line 1026 of file basics.h.

double TBCI::fabssqr ( const float  a  )  const [inline]

Definition at line 1025 of file basics.h.

double TBCI::fabssqr ( const double  a  )  const [inline]

Speaking of abs(), fabs() and fabssqr() : abs (T) returns type T, fabs() returns double and fabssqr() also a double (the sqr of fabs)

We want to be able to write templated code that can accept both std:: and TBCI:: types. Now, if such a routine uses functions like fabs() or abs(), we are in trouble: What namespace should the template author use for those? std:: or TBCI:: ?

Options are: (1) importing the pre-existing functions from std:: into TBCI:: (2) export the TBCI::functions to namespace std::

The answer may be different for each of those three types, as fabssqr() does not exist at all in std::, fabs() does exist, but only for doubles and abs() does exist for a number of builtin types as well as (std::complex)

In any case, the functions need to be completed, as no fabs() exists for non-double types, e.g. Additional complication is added by the fact that the whole thing should still work if compiled with NO_NS.

Solution (2) is the prefered one, as it does make users less dependent on TBCI. Unfortunately, this means that we may break backwards compatibility (on source level).

Note that the self-invented functions conj(), real(), imag() and fabssqr() remain in namespace TBCI. The same holds for sqr() and dot().

Definition at line 1024 of file basics.h.

Referenced by TBCI::F_Matrix< T >::fabs(), and TBCI::F_TSMatrix< T >::fabs().

template<typename VectorType>
static int TBCI::fix_condition ( VectorType &  vec,
const double  cndno = 1e-12 
) [inline, static]

Definition at line 287 of file svd_solver.h.

References std::fabs(), MATH__, and MAX.

Referenced by svd_solve().

void TBCI::free_threads (  ) 

std::complex< double > TBCI::gamma ( const std::complex< double > &  z  ) 

Definition at line 42 of file specfun_stdcplx.cpp.

References std::arg(), cgamma_(), CPLX__, complex::i, and complex::r.

Referenced by HypergeometricU(), and QMR().

cplx< double > TBCI::gamma ( const cplx< double > &  z  ) 

template<typename T>
char TBCI::gaussj ( Matrix< T > &  a,
Matrix< T > &  b 
) [inline]

Parameters:
a square n*n Matrix
b n*m Matrix, containing the Vectors to solve for
gauss-jordan linear algebraic equation solver with pivoting; Num.Rec. p.39
Returns:
a is inverted Matrix, b contains solution Vectors
Note:
The Matrices passed will be changed!

Definition at line 46 of file gauss_jordan.h.

References BCHK, TBCI::TMatrix< T >::col, std::fabs(), GJ_MINVAL, HVAL, MATH__, TBCI::TMatrix< T >::row, STD__, SWAP(), and T.

Referenced by lev_mar(), and LM_fit_2D().

template<typename T>
void TBCI::GeneratePlaneRotation ( const T &  dx,
const double &  dy,
double &  cs,
T &  sn 
) [inline]

We follow Frayssé, Giraud, Gratton for the complex implementation of the Givens plane rotations.

http://www.cerfacs.fr/algor/ There, cs is chosen to always be real, whereas sn is complex and the roation is given by (* denoting complex conjugate) x' = cs* x + sn* y y' = -sn x + cs y = 0

Definition at line 53 of file gmres.h.

References std::fabs(), fabssqr(), MATH__, sqrt(), T, and UNLIKELY.

Referenced by GMRES().

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::GMRES ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
int &  m,
unsigned int &  max_iter,
double &  tol 
) [inline]

Iterative template routine -- GMRES.

GMRES solves the unsymmetric linear system Ax = b using the Generalized Minimum Residual method

GMRES follows the algorithm described on p. 20 of the SIAM Templates book.

Parameters:
M -- Preconditioner
m -- Maximum number of iterations before restart. If you can afford it, you may set it to size(b), in which convergence is guaranteed. Note that internally, a matrix of size (m+1)x(m+1) needs to be stored.
Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1).
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax = b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration
If you use a preconditioner, don't forget to initialize it with the sys matrix (via constructor or update() member fct.)

Note: By fixing the plane rotation and replacing one inner prodcut by a dot product (which is taken by taking the innner product with the complex conjugate), I got GMres to work with complex numbers. Unfortunately, performance (convergence) is poor if used unpre- conditioned. This may or may not be a bug that's left. KG, 2002-07-25.

Definition at line 140 of file gmres.h.

References ApplyPlaneRotation(), dot(), std::fabs(), TBCI::Matrix< T >::fabs(), fabssqr(), GeneratePlaneRotation(), MATH__, TBCI::Preconditioner_Sig< T, MatrixType >::solve(), sqrt(), T, UNLIKELY, and Update().

template<typename T>
TVector<T> TBCI::grid_min ( T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  sig,
Vector< T > &  pmin,
Vector< T > &  pmax,
Vector< T > &  lambda,
long int  res,
int  max_it,
char  v 
) [inline]

template<typename T>
TVector<T> TBCI::Grid_Min_2D ( T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  z,
Vector< T > &  sig,
Vector< T > &  pmin,
Vector< T > &  pmax,
Vector< T > &  lambda,
long int  res,
int  max_it,
char  v 
) [inline]

Parameters:
v  find minimun of func on grid with resolution res

Definition at line 199 of file LM_fit.h.

References ALIGN, std::arg(), Basis_Trafo(), Chisq(), DELTAX, fac(), MATH__, min, MIN_ALIGN, Partial_Del(), std::pow(), TBCI::TVector< T >::size(), sqr(), STD__, T, and y.

template<typename T>
void TBCI::hpsort ( Matrix< T > &  x,
int  pos 
) [inline]

Definition at line 453 of file my_nr.h.

References TBCI::TMatrix< T >::columns(), and TBCI::TMatrix< T >::rows().

std:: complex<double> TBCI::hyper2geom1 ( const std::complex< double >  a,
const std::complex< double >  b,
const std::complex< double >  c,
const std::complex< double >  z 
)

Hypergeometric function 2F1 for complex arguments 2F1 is the solution to the hypergeometric differential equation x(1-x)y" + (c-(1+a+b)x)y' - aby = 0 We just do a summation over the expansion (a_k b_k/c_k * z^k / k!) with a_k := a * (a+1) * ... * (a+k-1)

Definition at line 22 of file hyper2geom1_stdcplx.cpp.

References CPLX__, fac(), and STD__.

TBCI:: cplx<double> TBCI::hyper2geom1 ( const TBCI::cplx< double >  a,
const TBCI::cplx< double >  b,
const TBCI::cplx< double >  c,
const TBCI::cplx< double >  z 
)

Hypergeometric function 2F1 for complex arguments 2F1 is the solution to the hypergeometric differential equation x(1-x)y" + (c-(1+a+b)x)y' - aby = 0 We just do a summation over the expansion (a_k b_k/c_k * z^k / k!) with a_k := a * (a+1) * ... * (a+k-1)

Definition at line 22 of file hyper2geom1.cpp.

References fac(), STD__, and TBCI__.

std:: complex<double> TBCI::hyper2geom1 ( const std::complex< double > &  a,
const std::complex< double > &  b,
const std::complex< double > &  c,
const std::complex< double > &  z 
)

cplx<double> TBCI::hyper2geom1 ( const cplx< double > &  a,
const cplx< double > &  b,
const cplx< double > &  c,
const cplx< double > &  z 
)

std::complex< double > TBCI::HypergeometricM ( const std::complex< double > &  a,
const std::complex< double > &  b,
const std::complex< double > &  z 
)

Definition at line 52 of file specfun_stdcplx.cpp.

References conhyp_(), CPLX__, doublecomplex::i, LONG_, and doublecomplex::r.

Referenced by HypergeometricU().

cplx< double > TBCI::HypergeometricM ( const cplx< double > &  a,
const cplx< double > &  b,
const cplx< double > &  z 
)

Definition at line 49 of file specfun.cpp.

References conhyp_(), doublecomplex::i, LONG_, and doublecomplex::r.

std::complex< double > TBCI::HypergeometricU ( const std::complex< double > &  a,
const std::complex< double > &  b,
const std::complex< double > &  z 
)

cplx< double > TBCI::HypergeometricU ( const cplx< double > &  a,
const cplx< double > &  b,
const cplx< double > &  z 
)

TVector<unsigned> TBCI::idx_fill_in1 ( const Index &  idx,
const unsigned  where,
const unsigned  what 
) [inline]

Definition at line 146 of file index.h.

References TBCI::Index::idx_fill_in1().

Referenced by TBCI::Tensor< T >::cntrmul(), and ctrmul().

TVector<unsigned> TBCI::idx_fill_in2 ( const Index &  idx,
const unsigned  where1,
const unsigned  what1,
const unsigned  where2,
const unsigned  what2 
) [inline]

Definition at line 168 of file index.h.

References TBCI::Index::idx_fill_in2().

Referenced by TBCI::Tensor< T >::contract().

TVector<unsigned> TBCI::idx_remove1 ( const Index &  idx,
const unsigned  which 
) [inline]

Definition at line 186 of file index.h.

References TBCI::Index::idx_remove1().

TVector<unsigned> TBCI::idx_remove2 ( const Index &  idx,
const unsigned  which1,
const unsigned  which2 
) [inline]

Definition at line 205 of file index.h.

References TBCI::Index::idx_remove2().

Referenced by TBCI::Tensor< T >::cntrmul(), TBCI::Tensor< T >::contract(), and ctrmul().

TVector<unsigned> TBCI::idx_set1 ( const Index &  idx,
const unsigned  which,
const unsigned  what 
) [inline]

Definition at line 219 of file index.h.

References TBCI::Index::idx_set1().

Referenced by metrmul().

template<typename T>
TVector<T> TBCI::imag ( const Vector< T > &  v  )  [inline]

Definition at line 918 of file vector.h.

References CPLX__, TBCI::TVector< T >::imag, and TBCI::TVector< T >::size().

Referenced by eig().

template<typename T>
TVector<T>& TBCI::imag ( TVector< T > &  tv  )  [inline]

int TBCI::init_threads ( const int  thr = 0  ) 

Needs to be called on startup for multithreaded programs

Parameters:
thr Number of threads to be created, 0 means automagically determine by looking at the hardware, a negativ numbers means that the automatic works, but only up to the maximum given.

Definition at line 478 of file smp.cc.

References CSTD__, detect_num_cpu(), TBCI::List< T >::getfirst(), TBCI::List< T >::getnext(), ismainthread, lina_err(), lina_thread(), loadavg(), main_thread_pid, MAX_THREADS, NULL, num_threads, pthr_cond_wait(), TBCI::thr_ctrl::t_done, TBCI::thr_ctrl::t_done_cond, TBCI::thr_ctrl::t_done_done, TBCI::thr_ctrl::t_id, TBCI::thr_ctrl::t_job, TBCI::thr_ctrl::t_no, TBCI::thr_ctrl::t_setup, TBCI::thr_ctrl::t_setup_cond, TCHK, and thrno.

F_TMatrix< std:: __complex__ float <double> > TBCI::inv ( const F_Matrix< std::__complex__ float< double > > &  A,
int  overwriteA 
)

F_TMatrix<cplx<double> > TBCI::inv ( const F_Matrix< cplx< double > > &  A,
int  overwriteA 
)

F_TMatrix< COMPLEX_DOUBLE > TBCI::inv ( const F_Matrix< COMPLEX_DOUBLE > &  A,
int  overwriteA = 0 
)

F_TMatrix< double > TBCI::inv ( const F_Matrix< double > &  A,
int  overwriteA = 0 
)

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::IR ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M,
unsigned int &  max_iter,
double &  tol 
) [inline]

Iterative template routine -- Preconditioned Richardson.

IR solves the unsymmetric linear system Ax = b using Iterative Refinement (preconditioned Richardson iteration).

Returns:
The return value indicates convergence within max_iter (input) iterations (0), or no convergence within max_iter iterations (1).
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax = b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration

Definition at line 41 of file ir.h.

References TBCI::Preconditioner_Sig< T, MatrixType >::solve().

template<typename T>
void TBCI::job_bdmat_vec_mult ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
void TBCI::job_bdmat_vec_transmult ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
void TBCI::job_mat_mat_mult ( struct thr_ctrl *  tc  )  [inline]

Definition at line 1945 of file matrix.h.

References do_mat_mat_mult().

template<typename T>
void TBCI::job_mat_vec_mult ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
void TBCI::job_mat_vec_transmult ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
void TBCI::job_svc_svc_add ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec + s*vec;

Definition at line 464 of file vector.h.

References do_svc_svc_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_svc_svc_sub ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec - s*vec;

Definition at line 491 of file vector.h.

References do_svc_svc_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_svc_val_add ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec + val;

Definition at line 528 of file vector.h.

References do_svc_val_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_svc_val_sub ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec - val;

Definition at line 537 of file vector.h.

References do_svc_val_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_svc_vec_add ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec + vec;

Definition at line 455 of file vector.h.

References do_svc_vec_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_svc_vec_sub ( struct thr_ctrl *  tc  )  [inline]

vec = s*vec - vec;

Definition at line 482 of file vector.h.

References do_svc_vec_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_add_vec ( struct thr_ctrl *  tc  )  [inline]

vec += val;

Definition at line 396 of file vector.h.

References do_val_add_vec(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_div_vec ( struct thr_ctrl *  tc  )  [inline]

vec = val/self;

Definition at line 436 of file vector.h.

References do_val_div_vec(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_sub_vec ( struct thr_ctrl *  tc  )  [inline]

vec -= val; vec = -vec;

Definition at line 412 of file vector.h.

References do_val_sub_vec(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_svc_add ( struct thr_ctrl *  tc  )  [inline]

vec = val + s*vec;

Definition at line 546 of file vector.h.

References do_val_svc_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_svc_div ( struct thr_ctrl *  tc  )  [inline]

vec = val / s*vec;

Definition at line 564 of file vector.h.

References do_val_svc_div(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_svc_sub ( struct thr_ctrl *  tc  )  [inline]

vec = val + s*vec;

Definition at line 555 of file vector.h.

References do_val_svc_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_vec_add ( struct thr_ctrl *  tc  )  [inline]

vec = val + vec;

Definition at line 364 of file vector.h.

References do_val_vec_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_vec_div ( struct thr_ctrl *  tc  )  [inline]

vec = val / vec;

Definition at line 380 of file vector.h.

References do_val_vec_div(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_vec_mul ( struct thr_ctrl *  tc  )  [inline]

vec = val * vec;

Definition at line 356 of file vector.h.

References do_val_vec_mul(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_val_vec_sub ( struct thr_ctrl *  tc  )  [inline]

vec = val - vec;

Definition at line 372 of file vector.h.

References do_val_vec_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_add_svc ( struct thr_ctrl *  tc  )  [inline]

vec += s*vec;

Definition at line 500 of file vector.h.

References do_vec_add_svc(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_add_val ( struct thr_ctrl *  tc  )  [inline]

vec += val;

Definition at line 388 of file vector.h.

References do_vec_add_val(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_add_vec ( struct thr_ctrl *  tc  )  [inline]

vec += vec;

Definition at line 308 of file vector.h.

References do_vec_add_vec(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_div_val ( struct thr_ctrl *  tc  )  [inline]

vec /= val;

Definition at line 428 of file vector.h.

References do_vec_div_val(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_dot ( struct thr_ctrl *  tc  )  [inline]

Definition at line 1799 of file vector.h.

References do_vec_dot(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_fabssqr ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
void TBCI::job_vec_mul_val ( struct thr_ctrl *  tc  )  [inline]

vec *= val;

Definition at line 420 of file vector.h.

References do_vec_mul_val(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_mult ( struct thr_ctrl *  tc  )  [inline]

Definition at line 1808 of file vector.h.

References do_vec_mult(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_sub_svc ( struct thr_ctrl *  tc  )  [inline]

vec -= s*vec;

Definition at line 509 of file vector.h.

References do_vec_sub_svc(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_sub_svc_inv ( struct thr_ctrl *  tc  )  [inline]

vec -= s*vec;

Definition at line 518 of file vector.h.

References do_vec_sub_svc_inv(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_sub_val ( struct thr_ctrl *  tc  )  [inline]

vec -= val;

Definition at line 404 of file vector.h.

References do_vec_sub_val(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_sub_vec ( struct thr_ctrl *  tc  )  [inline]

vec -= vec;

Definition at line 316 of file vector.h.

References do_vec_sub_vec(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_sub_vec_inv ( struct thr_ctrl *  tc  )  [inline]

vec -= vec; vec = -vec;

Definition at line 324 of file vector.h.

References do_vec_sub_vec_inv(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_svc_add ( struct thr_ctrl *  tc  )  [inline]

vec = vec + s*vec;

Definition at line 446 of file vector.h.

References do_vec_svc_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_svc_sub ( struct thr_ctrl *  tc  )  [inline]

vec = vec - s*vec;

Definition at line 473 of file vector.h.

References do_vec_svc_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_val_add ( struct thr_ctrl *  tc  )  [inline]

vec = vec + val;

Definition at line 332 of file vector.h.

References do_vec_val_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_val_mul ( struct thr_ctrl *  tc  )  [inline]

vec = vec * val;

Definition at line 348 of file vector.h.

References do_vec_val_mul(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_val_sub ( struct thr_ctrl *  tc  )  [inline]

vec = vec - val;

Definition at line 340 of file vector.h.

References do_vec_val_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_vec_add ( struct thr_ctrl *  tc  )  [inline]

vec = vec + vec;

Definition at line 292 of file vector.h.

References do_vec_vec_add(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vec_vec_sub ( struct thr_ctrl *  tc  )  [inline]

vec = vec - vec;

Definition at line 300 of file vector.h.

References do_vec_vec_sub(), T, TBCI::thr_ctrl::t_par, and TBCI::thr_ctrl::t_size.

template<typename T>
void TBCI::job_vv_comp ( struct thr_ctrl *  tc  )  [inline]

template<typename T>
T TBCI::lev_mar ( Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  sig,
Vector< T > &  param,
Vector< T > &  plow,
Vector< T > &  phigh,
T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T >  lambda,
Vector< T > &  lscale,
tol,
int  iter,
char  ver 
) [inline]

void TBCI::lina_empty ( struct thr_ctrl *  dummy  ) 

Definition at line 388 of file smp.cc.

void TBCI::lina_err ( struct thr_ctrl *  tc  ) 

Definition at line 382 of file smp.cc.

References TBCI::thr_ctrl::t_no.

Referenced by init_threads(), and lina_thread().

void* TBCI::lina_thread ( void *  thr  ) 

template<typename T>
T TBCI::LM_fit_2D ( Vector< T > &  x,
Vector< T > &  y,
Vector< T > &  z,
Vector< T > &  sig,
Vector< T > &  param,
Vector< T > &  plow,
Vector< T > &  phigh,
T(*)(const Vector< T > &, const Vector< T > &)  func,
Vector< T >  lambda,
Vector< T > &  lscale,
tol,
int  iter,
char  ver 
) [inline]

Parameters:
ver  fit method: levenberg-marquardt leads to an linear equ derivatives are calculated numerically by num_derivatives parameter space is restricted by plow and phigh

Definition at line 278 of file LM_fit.h.

References ALIGN, std::arg(), DELTA, std::fabs(), fac(), gaussj(), MATH__, MIN_ALIGN, Partial_Del(), TBCI::TVector< T >::size(), STD__, T, and y.

static int TBCI::loadavg (  )  [static]

Definition at line 264 of file smp.cc.

Referenced by init_threads().

static char* TBCI::ltoa ( const long  l  )  [static]

Definition at line 103 of file except.h.

References __TBCIERR_BUF_SZ.

template<typename T>
TVector<T> TBCI::LU_bkw_subst ( const Matrix< T > &  lu,
const Vector< T > &  y 
) [inline]

template<typename T>
TVector<T> TBCI::LU_bkw_subst ( const BdMatrix< T > &  lu,
const Vector< T > &  y 
) [inline]

template<typename T>
int TBCI::lu_decomp ( BdMatrix< T > &  mat  )  [inline]

LU decompose a TBCI::BdMatrix.

Decomposition is compactly stored in one BdMatrix The diagonal elements of the lower BdMatrix are all 1 (this is a feature of the algorithm)

Note:
The BdMatrix passed will be changed!

Definition at line 57 of file bd_lu_solver.h.

References ALIGN2, BCHK, BDMLU_MINVAL, TBCI::BdMatrix< T >::expand(), std::fabs(), TBCI::BdMatrix< T >::getmaxoff(), MATH__, MAX, MIN, MIN_ALIGN2, TBCI::BdMatrix< T >::rows(), TBCI::BdMatrix< T >::setval(), STD__, T, and UNLIKELY.

Referenced by lu_det(), lu_invert(), and lu_solve().

template<typename T>
int TBCI::lu_decomp ( Matrix< T > &  mat  )  [inline]

LU decomposes the TBCI::Matrix mat.

Decomposition is compactly stored in one Matrix The diagonal elements of the lower Matrix are all 1 (this is a feature of the algorithm).

Note:
The Matrix passed will be changed!

Definition at line 54 of file lu_solver.h.

References ALIGN2, BCHK, std::fabs(), MATH__, MIN_ALIGN2, MLU_MINVAL, T, and UNLIKELY.

template<typename T>
T TBCI::lu_det ( Matrix< T > &  mat  )  [inline]

calculates determinant of a Matrix by LU decomposition

Definition at line 293 of file lu_solver.h.

References lu_decomp(), and LU_det().

template<typename T>
T TBCI::LU_det ( const Matrix< T > &  lu  )  [inline]

calculates determinant of an already LU decomposed Matrix

Definition at line 281 of file lu_solver.h.

References ALIGN2, BCHK, TBCI::TMatrix< T >::columns(), MIN_ALIGN2, TBCI::TMatrix< T >::rows(), and T.

Referenced by lu_det().

template<typename T>
T TBCI::lu_det ( BdMatrix< T > &  mat  )  [inline]

calculates the determinant of a BdMatrix by doing an LU decomposition

Definition at line 329 of file bd_lu_solver.h.

References lu_decomp(), and LU_det().

template<typename T>
T TBCI::LU_det ( const BdMatrix< T > &  lu  )  [inline]

calculates determinant of an already LU decomposed BdMatrix

Definition at line 317 of file bd_lu_solver.h.

References ALIGN2, MIN_ALIGN2, and TBCI::BdMatrix< T >::rows().

template<typename T>
TVector<T> TBCI::LU_fwd_subst ( const Matrix< T > &  lu,
const Vector< T > &  y 
) [inline]

template<typename T>
TVector<T> TBCI::LU_fwd_subst ( const BdMatrix< T > &  lu,
const Vector< T > &  y 
) [inline]

template<typename T>
TMatrix<T> TBCI::lu_invert ( Matrix< T > &  mat  )  [inline]

Returns the inverse of a Matrix by performing a LU decomposition.

Definition at line 320 of file lu_solver.h.

References lu_decomp(), and LU_invert().

template<typename T>
TMatrix<T> TBCI::LU_invert ( const Matrix< T > &  mat  )  [inline]

Returns the inverse of a already LU decomposed Matrix.

Definition at line 303 of file lu_solver.h.

References BCHK, TBCI::TMatrix< T >::columns(), inv(), LU_solve(), TBCI::TMatrix< T >::rows(), T, and y.

Referenced by lu_invert().

template<typename T>
TMatrix<T> TBCI::lu_invert ( BdMatrix< T > &  mat  )  [inline]

return the inverse Matrix for a BdMatrix by doing an LU decomposition

Definition at line 355 of file bd_lu_solver.h.

References lu_decomp(), and LU_invert().

template<typename T>
TMatrix<T> TBCI::LU_invert ( const BdMatrix< T > &  lu  )  [inline]

return the inverse Matrix for an already LU decomposed BdMatrix

Definition at line 338 of file bd_lu_solver.h.

References TBCI::BdMatrix< T >::columns(), inv(), LU_solve(), TBCI::BdMatrix< T >::rows(), and y.

int TBCI::lu_solve ( CSCMatrix< cplx< double > > &  M,
Vector< cplx< double > > &  x,
const Vector< cplx< double > > &  rhs,
colperm_t  permc_spec,
bool  verbose,
bool  symm 
)

F_TMatrix< std:: __complex__ float <double> > TBCI::lu_solve ( const F_Matrix< std::__complex__ float< double > > &  A,
const F_Matrix< std::__complex__ float< double > > &  B,
int  overwriteA 
)

F_TMatrix<cplx<double> > TBCI::lu_solve ( const F_Matrix< cplx< double > > &  A,
const F_Matrix< cplx< double > > &  B,
int  overwriteA 
)

TVector< std:: complex<double> > TBCI::lu_solve ( CSCMatrix< std::complex< double > > &  M,
const Vector< std::complex< double > > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
) [inline]

Definition at line 35 of file superlu_stdcplx.h.

References CPLX__, and lu_solve().

int TBCI::lu_solve ( CSCMatrix< std::complex< double > > &  M,
Vector< std::complex< double > > &  x,
const Vector< std::complex< double > > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
)

TVector<double> TBCI::lu_solve ( CSCMatrix< double > &  M,
const Vector< double > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
) [inline]

Definition at line 41 of file superlu.h.

References lu_solve(), and TBCI::TVector< T >::size().

int TBCI::lu_solve ( CSCMatrix< double > &  M,
Vector< double > &  x,
const Vector< double > &  rhs,
colperm_t  permc_spec = NATURAL,
bool  verbose = false,
bool  symm = false 
)

Sparse LU solver for CSCMatrix, calling SuperLU routine. SuperLU is a direct solver, that uses advanced techniques to order elements to make LU decomposition perform very well.

For pentadiagonal systems, it performs often better(!) than iterative solvers in case no good guess value is available or if very high accuracy is needed.

Definition at line 29 of file superlu_d.cpp.

References ABORT, TBCI::CSCMatrix< T >::columnPointer(), TBCI::CSCMatrix< T >::columns(), TBCI::CSCMatrix< T >::dataPointer(), dCreate_CompCol_Matrix(), dCreate_Dense_Matrix(), Destroy_CompCol_Matrix(), Destroy_SuperMatrix_Store(), Destroy_SuperNode_Matrix(), dgssv(), dQuerySpace(), mem_usage_t::expansions, mem_usage_t::for_lu, TBCI::BVector< T >::get_fortran_vector(), get_perm_c(), intMalloc(), TBCI::CSCMatrix< T >::rowIndexPointer(), TBCI::CSCMatrix< T >::rows(), TBCI::CSCMatrix< T >::size(), SLU_D, SLU_DN, SLU_GE, SLU_NC, sp_ienv(), StatFree(), StatInit(), SUPERLU_FREE, mem_usage_t::total_needed, and U.

template<typename T>
TMatrix<T> TBCI::lu_solve ( Matrix< T > &  mat,
const Matrix< T > &  b 
) [inline]

Definition at line 272 of file lu_solver.h.

References lu_decomp(), and LU_solve().

template<typename T>
TMatrix<T> TBCI::LU_solve ( const Matrix< T > &  lu,
const Matrix< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::lu_solve ( Matrix< T > &  mat,
const Vector< T > &  b 
) [inline]

Solve the equation Ax = b where A still needs to be LU decomposed

Note:
The Matrix passed will be changed by the LU decomposition!

Definition at line 240 of file lu_solver.h.

References BCHK, std::fabs(), lu_decomp(), LU_solve(), MATH__, MLU_RES_WARN, and TBCI::TVector< T >::size().

template<typename T>
TVector<T> TBCI::LU_solve ( const Matrix< T > &  lu,
const Vector< T > &  b 
) [inline]

Solve the equation Ax = b where A IS already LU decomposed

Definition at line 225 of file lu_solver.h.

References LU_bkw_subst(), LU_fwd_subst(), and y.

template<typename T>
TMatrix<T> TBCI::lu_solve ( BdMatrix< T > &  mat,
const Matrix< T > &  b 
) [inline]

Definition at line 295 of file bd_lu_solver.h.

References lu_decomp(), and LU_solve().

template<typename T>
TMatrix<T> TBCI::LU_solve ( const BdMatrix< T > &  lu,
const Matrix< T > &  b 
) [inline]

template<typename T>
TVector<T> TBCI::lu_solve ( BdMatrix< T > &  mat,
const Vector< T > &  b 
) [inline]

Solve the equation Ax = b where A still needs to be LU decomposed.

Note:
The BdMatrix passed will be changed by the LU decomposition!

Definition at line 260 of file bd_lu_solver.h.

References BDMLU_RES_WARN, std::fabs(), lu_decomp(), LU_solve(), MATH__, TBCI::TVector< T >::size(), STD__, and UNLIKELY.

template<typename T>
TVector<T> TBCI::LU_solve ( const BdMatrix< T > &  lu,
const Vector< T > &  b 
) [inline]

Solve the equation Ax = b where A IS already LU decomposed.

Definition at line 246 of file bd_lu_solver.h.

References LU_bkw_subst(), LU_fwd_subst(), and y.

F_TMatrix< COMPLEX_DOUBLE > TBCI::lu_solve ( const F_Matrix< COMPLEX_DOUBLE > &  A,
const F_Matrix< COMPLEX_DOUBLE > &  B,
int  overwriteA = 0 
)

TVector< double > TBCI::lu_solve ( F_BandMatrix< double > &  A,
const Vector< double > &  B,
int  num_lower,
int  num_upper 
)

TVector< double > TBCI::lu_solve ( const F_BandMatrix< double > &  A,
const Vector< double > &  B 
)

TVector< double > TBCI::lu_solve ( const F_Matrix< double > &  A,
const Vector< double > &  B,
int  overwriteA = 0 
)

F_TMatrix< double > TBCI::lu_solve ( const F_Matrix< double > &  A,
const F_Matrix< double > &  B,
int  overwriteA = 0 
)

TVector< double > TBCI::lu_solve_expert ( const F_BandMatrix< double > &  A,
const Vector< double > &  B,
int  equilibrate = 1 
)

template<typename T>
void TBCI::MatVecMult ( Vector< T > &  res,
const CSCMatrix< T > &  m,
const Vector< T > &  v 
) [inline]

Definition at line 673 of file cscmatrix.h.

References TBCI::CSCMatrix< T >::MatVecMult().

template<typename T>
void TBCI::MatVecMult ( Vector< T > &  res,
const CRMatrix< T > &  m,
const Vector< T > &  v 
) [inline]

Definition at line 532 of file crmatrix.h.

References TBCI::CRMatrix< T >::MatVecMult().

template<unsigned dims, typename T>
T TBCI::max ( const FS_Vector< dims, T > &  fv  )  [inline]

Definition at line 589 of file fs_vector.h.

References TBCI::FS_Vector< dims, T >::max().

template<typename T>
Tensor<T> TBCI::metrmul ( const Tensor< T > &  metr,
const Tensor< T > &  t,
const unsigned  i1,
const unsigned  i2 
) [inline]

template<unsigned dims, typename T>
T TBCI::min ( const FS_Vector< dims, T > &  fv  )  [inline]

Definition at line 584 of file fs_vector.h.

References TBCI::FS_Vector< dims, T >::min().

Referenced by TBCI::BdMatrix< T >::resize().

template<typename T>
double TBCI::norm_1 ( const TMatrix< T > &  mat  )  [inline]

We need a special implementation for TMatrix to prevent memory leak.

Definition at line 35 of file expm.h.

References TBCI::TMatrix< T >::columns(), std::fabs(), TBCI::TMatrix< T >::get(), TBCI::TMatrix< T >::mark_destroy(), MATH__, MAX, max, TBCI::TMatrix< T >::rows(), and sum().

Referenced by expm(), expm2(), and expm3().

template<typename Matrix>
double TBCI::norm_1 ( const Matrix &  mat  )  [inline]

template<typename T>
bool TBCI::operator!= ( const F_BandMatrix< T > &  m1,
const F_BandMatrix< T > &  m2 
) [inline]

Definition at line 282 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::dim.

template<typename T>
TSVector<T> TBCI::operator* ( const T &  a,
const Vector< T > &  b 
) [inline]

Definition at line 2255 of file vector.h.

template<typename T>
const TSVector<T>& TBCI::operator* ( const T &  f,
const TSVector< T > &  ts 
) [inline]

Definition at line 1202 of file vector.h.

References TBCI::TSVector< T >::getfac(), and TBCI::TSVector< T >::getfacref().

template<typename T>
TSVector<T> TBCI::operator* ( const T &  a,
const TVector< T > &  b 
) [inline]

Definition at line 807 of file vector.h.

template<typename T>
Tensor<T> TBCI::operator* ( const T  m,
const Tensor< T > &  t 
) [inline]

Definition at line 822 of file tensor.h.

References TBCI::Tensor< T >::mult().

template<typename T>
TSMatrix<T> TBCI::operator* ( const T &  f,
TSMatrix< T >  ts 
) [inline]

Definition at line 1515 of file matrix.h.

template<typename T>
TSMatrix<T> TBCI::operator* ( const T &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 1037 of file matrix.h.

template<typename T>
TSMatrix<T> TBCI::operator* ( const T &  a,
TMatrix< T >  b 
) [inline]

Definition at line 1012 of file matrix.h.

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::operator* ( const T &  v,
const FS_Vector< dims, T > &  fv 
) [inline]

Definition at line 564 of file fs_vector.h.

template<typename T>
F_TSMatrix<T> TBCI::operator* ( const T &  f,
F_TSMatrix< T >  ts 
) [inline]

Definition at line 1149 of file f_matrix.h.

template<typename T>
F_TSMatrix<T> TBCI::operator* ( const T &  a,
const F_Matrix< T > &  b 
) [inline]

Definition at line 765 of file f_matrix.h.

template<typename T>
F_TSMatrix<T> TBCI::operator* ( const T &  a,
F_TMatrix< T >  b 
) [inline]

Definition at line 740 of file f_matrix.h.

template<typename T>
F_BandMatrix<T> TBCI::operator* ( const T  z,
const F_BandMatrix< T > &  m 
) [inline]

Definition at line 406 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::do_fbdmat_scale.

template<typename T>
F_BandMatrix<T> TBCI::operator* ( const F_BandMatrix< T > &  m,
const T  z 
) [inline]

Definition at line 400 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::do_fbdmat_scale.

template<typename T>
TVector<T> TBCI::operator* ( const F_BandMatrix< T > &  m,
const TSVector< T > &  tsv 
) [inline]

Definition at line 337 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::do_fbdmat_vec_mul.

template<typename T>
TVector<T> TBCI::operator* ( const F_BandMatrix< T > &  m,
const TVector< T > &  tv 
) [inline]

Definition at line 329 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::do_fbdmat_vec_mul.

template<typename T>
TVector<T> TBCI::operator* ( const F_BandMatrix< T > &  m,
const Vector< T > &  v 
) [inline]

Definition at line 322 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::do_fbdmat_vec_mul.

template<typename T>
CSCMatrix<T> TBCI::operator* ( const T &  z,
const CSCMatrix< T > &  m 
) [inline]

Definition at line 748 of file cscmatrix.h.

References TBCI::CSCMatrix< T >::mult().

template<typename T>
F_TMatrix<T> TBCI::operator* ( const CSCMatrix< T > &  m1,
const F_Matrix< T > &  m2 
) [inline]

Definition at line 321 of file cscmatrix.h.

References TBCI::CSCMatrix< T >::mult1().

template<typename T>
F_TMatrix<T> TBCI::operator* ( const F_Matrix< T > &  m1,
const CSCMatrix< T > &  m2 
) [inline]

Definition at line 284 of file cscmatrix.h.

References TBCI::CSCMatrix< T >::multf().

template<typename T>
CRMatrix<T> TBCI::operator* ( const T &  z,
const CRMatrix< T > &  m 
) [inline]

Definition at line 608 of file crmatrix.h.

References TBCI::CRMatrix< T >::mult().

template<typename T>
cplx<T> TBCI::operator* ( const T  a,
const cplx< T > &  b 
) [inline]

Definition at line 336 of file cplx.h.

References TBCI::cplx< T >::mult().

template<typename T>
BdMatrix<T> TBCI::operator* ( const T &  v,
const BdMatrix< T > &  m 
) [inline]

Definition at line 1417 of file band_matrix.h.

template<typename T>
TVector<T> TBCI::operator+ ( const T &  a,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::operator+ ( const T &  v,
const TSVector< T > &  tsv 
) [inline]

Definition at line 1441 of file vector.h.

References TBCI::TSVector< T >::add_t_tsv().

template<typename T>
const TVector<T>& TBCI::operator+ ( const T &  a,
const TVector< T > &  b 
) [inline]

TV = T + TV Transformed to TV += T.

Definition at line 783 of file vector.h.

References TBCI::BVector< T >::dim, TBCI::TVector< T >::setval(), TBCI::TVector< T >::size(), STD_SMP_TEMPLATE2C, T, and TBCI::BVector< T >::vec.

template<typename T>
TMatrix<T> TBCI::operator+ ( const T &  a,
const TSMatrix< T > &  ts 
) [inline]

Definition at line 1377 of file matrix.h.

References TBCI::TSMatrix< T >::detach(), STD_SMP_TEMPLATE4C, and T.

template<typename T>
TMatrix<T> TBCI::operator+ ( const T &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 1020 of file matrix.h.

References STD_SMP_TEMPLATE3VC.

template<typename T>
TMatrix<T> TBCI::operator+ ( const T &  a,
TMatrix< T >  b 
) [inline]

Definition at line 997 of file matrix.h.

References STD_SMP_TEMPLATE2C.

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::operator+ ( const T &  v,
const FS_Vector< dims, T > &  fv 
) [inline]

Definition at line 569 of file fs_vector.h.

References TBCI::FS_Vector< dims, T >::plus().

template<typename T>
F_TMatrix<T> TBCI::operator+ ( const T &  a,
F_TSMatrix< T >  ts 
) [inline]

Definition at line 1047 of file f_matrix.h.

template<typename T>
F_TMatrix<T> TBCI::operator+ ( const T &  a,
const F_Matrix< T > &  b 
) [inline]

Definition at line 757 of file f_matrix.h.

template<typename T>
F_TMatrix<T> TBCI::operator+ ( const T &  a,
F_TMatrix< T >  b 
) [inline]

Definition at line 733 of file f_matrix.h.

template<typename T>
F_BandMatrix<T> TBCI::operator+ ( const F_BandMatrix< T > &  A,
const F_BandMatrix< T > &  B 
) [inline]

template<typename T>
cplx<T> TBCI::operator+ ( const T  a,
const cplx< T > &  b 
) [inline]

Definition at line 317 of file cplx.h.

References TBCI::cplx< T >::plus().

template<typename T>
TVector<T> TBCI::operator- ( const T &  a,
const Vector< T > &  v 
) [inline]

template<typename T>
TVector<T> TBCI::operator- ( const T &  v,
const TSVector< T > &  tsv 
) [inline]

Definition at line 1461 of file vector.h.

References TBCI::TSVector< T >::sub_t_tsv().

template<typename T>
const TVector<T>& TBCI::operator- ( const T &  a,
const TVector< T > &  b 
) [inline]

TV = T - TV Transformed to -TV -= T.

Definition at line 795 of file vector.h.

References TBCI::BVector< T >::dim, TBCI::TVector< T >::setval(), TBCI::TVector< T >::size(), STD_SMP_TEMPLATE2C, T, and TBCI::BVector< T >::vec.

template<typename T>
TMatrix<T> TBCI::operator- ( const T &  a,
const TSMatrix< T > &  ts 
) [inline]

Definition at line 1385 of file matrix.h.

References TBCI::TSMatrix< T >::detach(), STD_SMP_TEMPLATE4C, and T.

template<typename T>
TMatrix<T> TBCI::operator- ( const T &  a,
const Matrix< T > &  b 
) [inline]

Definition at line 1028 of file matrix.h.

References STD_SMP_TEMPLATE3VC.

template<typename T>
TMatrix<T> TBCI::operator- ( const T &  a,
TMatrix< T >  b 
) [inline]

Definition at line 1004 of file matrix.h.

References STD_SMP_TEMPLATE2C.

template<unsigned dims, typename T>
FS_Vector<dims,T> TBCI::operator- ( const T &  v,
const FS_Vector< dims, T > &  fv 
) [inline]

Definition at line 574 of file fs_vector.h.

References TBCI::FS_Vector< dims, T >::minus().

template<typename T>
F_TMatrix<T> TBCI::operator- ( const T &  a,
F_TSMatrix< T >  ts 
) [inline]

Definition at line 1048 of file f_matrix.h.

template<typename T>
F_TMatrix<T> TBCI::operator- ( const T &  a,
const F_Matrix< T > &  b 
) [inline]

Definition at line 758 of file f_matrix.h.

template<typename T>
F_TMatrix<T> TBCI::operator- ( const T &  a,
F_TMatrix< T >  b 
) [inline]

Definition at line 734 of file f_matrix.h.

template<typename T>
F_BandMatrix<T> TBCI::operator- ( const F_BandMatrix< T > &  A,
const F_BandMatrix< T > &  B 
) [inline]

template<typename T>
F_BandMatrix<T> TBCI::operator- ( const F_BandMatrix< T > &  m  )  [inline]

template<typename T>
cplx<T> TBCI::operator- ( const T  a,
const cplx< T > &  b 
) [inline]

Definition at line 323 of file cplx.h.

References TBCI::cplx< T >::minus().

template<typename T>
TSVector<T> TBCI::operator/ ( const T &  a,
const Vector< T > &  b 
) [inline]

Definition at line 2265 of file vector.h.

References BCHK, TBCI::Vector< T >::fabssqr(), std::norm(), and T.

template<typename T>
TSVector<T> TBCI::operator/ ( const T &  a,
TVector< T >  b 
) [inline]

Definition at line 818 of file vector.h.

References BCHK, std::norm(), and T.

template<typename T>
F_BandMatrix<T> TBCI::operator/ ( const F_BandMatrix< T > &  m,
const T  z 
) [inline]

template<typename T>
cplx<T> TBCI::operator/ ( const T  a,
const cplx< T > &  b 
) [inline]

Definition at line 342 of file cplx.h.

References TBCI::cplx< T >::div().

bool TBCI::operator< ( const cplx_t &  a,
const hcplx &  b 
) [inline]

Definition at line 164 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator< ( const hcplx &  a,
const cplx_t &  b 
) [inline]

Definition at line 155 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator< ( const hcplx &  a,
const hcplx &  b 
) [inline]

Definition at line 146 of file builtin_cplx.h.

References fabssqr().

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const Vector< T > &  v 
) [inline]

Definition at line 1689 of file vector.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const TSVector< T > &  ts 
) [inline]

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const TVector< T > &  tv 
) [inline]

Definition at line 262 of file vector.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const CTensor< T > &  ct 
) [inline]

Definition at line 352 of file tensor.h.

References TBCI::Index::next_idx().

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  out,
const Symm_BdMatrix< T > &  matrix 
) [inline]

Definition at line 386 of file symm_bdmatrix.h.

References STD__.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const TSMatrix< T > &  ts 
) [inline]

Definition at line 1827 of file matrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
TMatrix< T >  tm 
) [inline]

Definition at line 1819 of file matrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const Matrix< T > &  m 
) [inline]

Definition at line 1789 of file matrix.h.

template<unsigned dims, typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const FS_Vector< dims, T > &  fv 
) [inline]

Definition at line 380 of file fs_vector.h.

References dims.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
F_TSMatrix< T >  ts 
) [inline]

Definition at line 1365 of file f_matrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
F_TMatrix< T >  tm 
) [inline]

Definition at line 1356 of file f_matrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const F_Matrix< T > &  m 
) [inline]

Definition at line 1344 of file f_matrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  stream,
const F_BandMatrix< T > &  m 
) [inline]

Definition at line 587 of file f_bandmatrix.h.

References STD__.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  stream,
const CSCMatrix< T > &  m 
) [inline]

Definition at line 251 of file cscmatrix.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  stream,
const CRMatrix< T > &  m 
) [inline]

Definition at line 773 of file crmatrix.h.

References TBCI::CRMatrix< T >::columns(), TBCI::CRMatrix< T >::rows(), and STD__.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const cplx< T > &  c 
) [inline]

Definition at line 621 of file cplx.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  os,
const BVector< T > &  v 
) [inline]

Definition at line 530 of file bvector.h.

std:: ostream& TBCI::operator<< ( std::ostream &  os,
const cplx_t &  c 
) [inline]

Definition at line 182 of file builtin_cplx.h.

template<typename T>
std:: ostream& TBCI::operator<< ( std::ostream &  ostr,
const BdMatrix< T > &  mat 
) [inline]

Definition at line 2282 of file band_matrix.h.

References abs, BCHK, CSTD__, and UNLIKELY.

bool TBCI::operator<= ( const cplx_t &  a,
const hcplx &  b 
) [inline]

Definition at line 162 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator<= ( const hcplx &  a,
const cplx_t &  b 
) [inline]

Definition at line 153 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator<= ( const hcplx &  a,
const hcplx &  b 
) [inline]

Definition at line 144 of file builtin_cplx.h.

References fabssqr().

template<typename T>
bool TBCI::operator== ( const F_BandMatrix< T > &  m1,
const F_BandMatrix< T > &  m2 
) [inline]

bool TBCI::operator> ( const cplx_t &  a,
const hcplx &  b 
) [inline]

Definition at line 168 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator> ( const hcplx &  a,
const cplx_t &  b 
) [inline]

Definition at line 159 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator> ( const hcplx &  a,
const hcplx &  b 
) [inline]

Definition at line 150 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator>= ( const cplx_t &  a,
const hcplx &  b 
) [inline]

Definition at line 166 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator>= ( const hcplx &  a,
const cplx_t &  b 
) [inline]

Definition at line 157 of file builtin_cplx.h.

References fabssqr().

bool TBCI::operator>= ( const hcplx &  a,
const hcplx &  b 
) [inline]

Definition at line 148 of file builtin_cplx.h.

References fabssqr().

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  is,
CTensor< T > &  ct 
) [inline]

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  in,
Matrix< T > &  m 
) [inline]

template<unsigned dims, typename T>
std:: istream& TBCI::operator>> ( std::istream &  in,
FS_Vector< dims, T > &  v 
) [inline]

Definition at line 391 of file fs_vector.h.

References ALIGN, dims, MIN_ALIGN, and T.

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  in,
F_Matrix< T > &  m 
) [inline]

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  in,
cplx< T > &  c 
) [inline]

Definition at line 627 of file cplx.h.

References ALIGN, TBCI::cplx< T >::im, MIN_ALIGN, and T.

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  in,
BVector< T > &  v 
) [inline]

Definition at line 553 of file bvector.h.

References ALIGN, TBCI::BVector< T >::dim, MIN_ALIGN, T, and TBCI::BVector< T >::vec.

std:: istream& TBCI::operator>> ( std::istream &  in,
cplx_t &  c 
) [inline]

Definition at line 188 of file builtin_cplx.h.

template<typename T>
std:: istream& TBCI::operator>> ( std::istream &  istr,
BdMatrix< T > &  mat 
) [inline]

template<typename T>
bool TBCI::par_comp ( TVector< T >  v1,
TVector< T >  v2 
) [inline]

Definition at line 2026 of file vector.h.

References par_comp().

template<typename T>
bool TBCI::par_comp ( TVector< T >  v1,
const Vector< T > &  v2 
) [inline]

Definition at line 2020 of file vector.h.

References par_comp().

template<typename T>
bool TBCI::par_comp ( const Vector< T > &  v1,
TVector< T >  v2 
) [inline]

Definition at line 2013 of file vector.h.

References par_comp().

template<typename T>
bool TBCI::par_comp ( const Vector< T > &  v1,
const Vector< T > &  v2 
) [inline]

template<typename T>
T TBCI::partial_del ( T(*)(const Vector< T > &, const Vector< T > &)  func,
const Vector< T > &  x,
const Vector< T > &  p,
int  mu,
h,
T &  err 
) [inline]

Definition at line 101 of file my_nr.h.

References ALIGN, BIG, CON, CON2, std::fabs(), fac(), MATH__, MAX, MIN_ALIGN, NTAB, SAFE, TBCI::TVector< T >::size(), STD__, and T.

Referenced by grid_min(), and lev_mar().

template<typename T>
T TBCI::Partial_Del ( T(*)(const Vector< T > &, const Vector< T > &)  func,
const Vector< T > &  x,
const Vector< T > &  p,
int  mu,
h,
T &  err 
) [inline]

Definition at line 97 of file LM_fit.h.

References ALIGN, BIG, CON, CON2, std::fabs(), fac(), MATH__, MAX, MIN_ALIGN, NTAB, SAFE, TBCI::TVector< T >::size(), STD__, and T.

Referenced by Grid_Min_2D(), and LM_fit_2D().

template<typename T>
TBCI:: cplx<T> TBCI::polar ( const T &  r,
const T &  p 
) [inline]

Definition at line 706 of file cplx.h.

References expi(), and TBCI__.

Referenced by sqr(), and std::sqrt().

cplx_base TBCI::polar ( const cplx_t &  c  )  [inline]

Definition at line 216 of file builtin_cplx.h.

References atan2(), MATH__, and pi.

void TBCI::pthr_cond_signal_mutex ( pthread_cond_t *  cond,
pthread_mutex_t *  mut,
volatile int *  done 
) [inline]

Definition at line 331 of file smp.cc.

References _cpu_relax, ERRDECL, POLL_REPS, and TCHK.

Referenced by _thread_start_off(), free_threads(), and lina_thread().

int TBCI::pthr_cond_wait ( pthread_cond_t *  cond,
pthread_mutex_t *  mut,
volatile int *  valptr 
) [inline]

Definition at line 358 of file smp.cc.

References _cpu_relax, ERRDECL, and POLL_REP.

Referenced by init_threads(), lina_thread(), thread_wait(), and thread_wait_result().

void TBCI::pthread_mutex_bug_abort ( struct thr_ctrl *  tc,
int  err,
const char *  where 
)

Definition at line 398 of file smp.cc.

References CSTD__, and TBCI::thr_ctrl::t_no.

Referenced by lina_thread(), thread_wait(), and thread_wait_result().

template<typename T, typename SysMatrix, typename SysVector>
int TBCI::QMR ( const SysMatrix &  A,
SysVector &  x,
const SysVector &  b,
const Preconditioner_Sig< T, SysMatrix > &  M1,
const Preconditioner_Sig< T, SysMatrix > &  M2,
unsigned int &  max_iter,
double &  tol 
) [inline]

Iterative template routine -- QMR

QMR solves the unsymmetric linear system Ax = b using the Quasi-Minimal Residual method following the algorithm as described on p. 24 in the SIAM Templates book.

Returns:
----------------------------------------------------------
return value indicates
------------ ---------------------
0 convergence within max_iter iterations
1 no convergence after max_iter iterations
breakdown in:
2 rho
3 beta
4 gamma
5 delta
6 ep
7 xi
-------------------------------------------------------------
Upon successful return, output arguments have the following values:

Parameters:
x -- approximate solution to Ax=b
max_iter -- the number of iterations performed before the tolerance was reached
tol -- the residual after the final iteration
If you use a preconditioner, don't forget to initialize it with the sys matrix (via constructor or update() member fct.)

Definition at line 59 of file qmr.h.

References fabssqr(), gamma(), MATH__, QMR_OUT, TBCI::Preconditioner_Sig< T, MatrixType >::solve(), sqr(), sqrt(), std::sqrt(), STD__, TBCI::Preconditioner_Sig< T, MatrixType >::transSolve(), and y.

template<typename T>
TVector<T> TBCI::real ( const Vector< T > &  v  )  [inline]

Definition at line 907 of file vector.h.

References CPLX__, TBCI::TVector< T >::real, and TBCI::TVector< T >::size().

template<typename T>
TVector<T>& TBCI::real ( TVector< T > &  tv  )  [inline]

void TBCI::reenable_threads (  ) 

Switch on multithreading again.

Definition at line 812 of file smp.cc.

References threads_busy.

template<typename T>
int TBCI::sign ( const T &  x  )  const [inline]

Signum.

Definition at line 972 of file basics.h.

References CPLX__, LIKELY, and real.

template int TBCI::sign< double > ( const double &   ) 

template<unsigned dims, typename T, unsigned long dims2>
FS_Vector<dims,T> TBCI::slice ( const FS_Vector< dims, T > &  fv,
const unsigned long  s,
const unsigned long  e 
) [inline]

template<typename T>
static unsigned long TBCI::slice_offset ( int  thr,
int  no_thr,
unsigned long  dim,
T *  ptr 
) [inline, static]

template<typename T>
cplx<T> TBCI::sqr ( const cplx< T > &  c  )  [inline]

cplx_t TBCI::sqr ( const cplx_t &  c  )  [inline]

Definition at line 235 of file builtin_cplx.h.

References expi(), fabssqr(), pi2, and polar().

template<typename T>
T TBCI::sqr ( const T &  a  )  const [inline]

template double TBCI::sqr< double > ( const double &   ) 

template<unsigned dims, typename T>
T TBCI::sum ( const FS_Vector< dims, T > &  fv  )  [inline]

template<typename MatrixType, typename VectorType>
void TBCI::sv_decomp ( MatrixType &  A,
MatrixType &  V,
VectorType &  W 
) [inline]

Singular Value Decomposition Decomposes matrix A into U * diag(W) * V^T A is overwritten with U.

Definition at line 44 of file svd_solver.h.

References std::fabs(), MATH__, MAX, MIN, sqrt(), STD__, sv_decomp_pythag(), SVDFLOAT, and y.

template<typename MatrixType, typename T>
TVector<T> TBCI::sv_decomp_backsub ( const MatrixType &  U,
const MatrixType &  V,
const Vector< T > &  W,
const Vector< T > &  b 
) [inline]

Definition at line 332 of file svd_solver.h.

References TBCI::TVector< T >::set(), TBCI::TVector< T >::size(), SVDFLOAT, and U.

Referenced by svd_solve().

template<typename MatrixType, typename VectorType>
void TBCI::sv_decomp_backsub ( const MatrixType &  U,
const MatrixType &  V,
const VectorType &  W,
const VectorType &  b,
VectorType &  x 
) [inline]

Definition at line 259 of file svd_solver.h.

References SVDFLOAT, and U.

template<typename ARG>
double TBCI::sv_decomp_pythag ( ARG  a,
ARG  b 
) [inline]

Calculate sqrt (a^2 + b^2) avoiding under/overflows.

Definition at line 22 of file svd_solver.h.

References std::fabs(), MATH__, and sqrt().

Referenced by sv_decomp().

template<typename MatrixType, typename T>
TVector<T> TBCI::svd_solve ( const MatrixType &  mat,
const Vector< T > &  b,
const double  cndno = 1e-12 
) [inline]

The interface to use the SVD solver: Solve the equation mat * x = b.

Input mat, b: Return value x Optimized version returning a TVector. cndno is the maximum allowable condition numbers. Singular values below maxSV * cndno are set to zero.

Note that we don't change the mat, unlike in LU solver, as we can't store the complete result of the decomposition in it anyway.

Definition at line 370 of file svd_solver.h.

References fix_condition(), MatrixType, and sv_decomp_backsub().

template<typename MatrixType, typename VectorType>
VectorType TBCI::svd_solve ( const MatrixType &  mat,
const VectorType &  b,
const double  cndno = 1e-12 
) [inline]

The interface to use the SVD solver: Solve the equation mat * x = b.

Input mat, b: Return value x Optimized version returning a TVector below. cndno is the maximum allowable condition numbers. Singular values below maxSV * cndno are set to zero.

Definition at line 315 of file svd_solver.h.

References fix_condition(), MatrixType, and sv_decomp_backsub().

template<typename T>
void TBCI::SWAP ( T &  a,
T &  b 
) [inline]

SWAP function Note: We could implement a swap function without temporaries: a -= b b += a a -= b a = -a That's four arithmetic operations to save one temporary and it can be only done for integers.

Unlikely that it's worth it.

Definition at line 759 of file basics.h.

References ALIGN, MIN_ALIGN, and T.

Referenced by TBCI::tbci_memalloc_cache< floatptr >::_init(), gaussj(), TBCI::F_TMatrix< T >::herm(), TBCI::TMatrix< T >::swap(), TBCI::F_TMatrix< T >::swap(), TBCI::F_BandMatrix< T >::swap(), TBCI::CSCMatrix< T >::swap(), TBCI::CRMatrix< T >::swap(), TBCI::BVector< T >::swap(), TBCI::F_TMatrix< T >::trans(), TBCI::CTensor< T >::transpose(), TBCI::TMatrix< T >::transpose(), and TBCI::F_TMatrix< T >::transpose().

template void TBCI::SWAP< double > ( double &  ,
double &   
)

template<typename T>
tbci_memalloc< T > & TBCI::tbci_s_allocator (  )  [inline]

Definition at line 561 of file malloc_cache.h.

template<>
tbci_memalloc< charptr >& TBCI::tbci_s_allocator< charptr > (  )  [inline]

template<>
tbci_memalloc< double >& TBCI::tbci_s_allocator< double > (  )  [inline]

template<>
tbci_memalloc< doubleptr >& TBCI::tbci_s_allocator< doubleptr > (  )  [inline]

template<>
tbci_memalloc< float >& TBCI::tbci_s_allocator< float > (  )  [inline]

template<>
tbci_memalloc< floatptr >& TBCI::tbci_s_allocator< floatptr > (  )  [inline]

template<>
tbci_memalloc< int >& TBCI::tbci_s_allocator< int > (  )  [inline]

template<>
tbci_memalloc< intptr >& TBCI::tbci_s_allocator< intptr > (  )  [inline]

template<>
tbci_memalloc< long >& TBCI::tbci_s_allocator< long > (  )  [inline]

template<>
tbci_memalloc< longptr >& TBCI::tbci_s_allocator< longptr > (  )  [inline]

template<>
tbci_memalloc< signed char >& TBCI::tbci_s_allocator< signed char > (  )  [inline]

template<>
tbci_memalloc< std:: complex<double> >& TBCI::tbci_s_allocator< std::complex< double > > (  )  [inline]

template<>
tbci_memalloc< std:: complex<float> >& TBCI::tbci_s_allocator< std::complex< float > > (  )  [inline]

template<>
tbci_memalloc< stdcomplexdoubleptr >& TBCI::tbci_s_allocator< stdcomplexdoubleptr > (  )  [inline]

template<>
tbci_memalloc< stdcomplexfloatptr >& TBCI::tbci_s_allocator< stdcomplexfloatptr > (  )  [inline]

template<>
tbci_memalloc< ucharptr >& TBCI::tbci_s_allocator< ucharptr > (  )  [inline]

template<>
tbci_memalloc< uintptr >& TBCI::tbci_s_allocator< uintptr > (  )  [inline]

template<>
tbci_memalloc< ulongptr >& TBCI::tbci_s_allocator< ulongptr > (  )  [inline]

template<>
tbci_memalloc< unsigned >& TBCI::tbci_s_allocator< unsigned > (  )  [inline]

template<>
tbci_memalloc< unsigned char >& TBCI::tbci_s_allocator< unsigned char > (  )  [inline]

template<>
tbci_memalloc< unsigned long >& TBCI::tbci_s_allocator< unsigned long > (  )  [inline]

template<>
tbci_memalloc< unsigned short >& TBCI::tbci_s_allocator< unsigned short > (  )  [inline]

template<>
tbci_memalloc< voidptr >& TBCI::tbci_s_allocator< voidptr > (  )  [inline]

void TBCI::thread_dereg_callback ( cbackfn  ctor,
cbackfn  dtor,
void *  parm 
)

void TBCI::thread_reg_callback ( cbackfn  ctor,
cbackfn  dtor,
void *  parm 
)

void TBCI::thread_start ( const int  thr_no,
thr_job_t  job,
const unsigned long  sz,
  ... 
)

last arg must be (void*)0 !

Definition at line 728 of file smp.cc.

References _thread_start_off().

Referenced by _thread_start_off(), dot(), TBCI::Vector< T >::fabssqr(), TBCI::Vector< T >::operator*(), and par_comp().

void TBCI::thread_start_off ( const int  thr_no,
thr_job_t  job,
const unsigned long  offset,
const unsigned long  sz,
  ... 
)

void TBCI::thread_wait ( const int  thr_no  ) 

long double TBCI::thread_wait_result ( const int  thr_no  ) 

void * TBCI::thread_wait_useful ( const int  thr_no,
useful_job_t  job = 0,
void *  arg = 0 
)

Definition at line 755 of file smp.cc.

References _cpu_relax, ERRDECL, NULL, TBCI::thr_ctrl::t_done, TBCI::thr_ctrl::t_done_done, and TCHK.

int TBCI::threads_avail ( const  int = 0  ) 

template<typename T>
TMatrix<T> TBCI::transpose ( const TMatrix< T > &  tm  )  [inline]

Definition at line 1067 of file matrix.h.

References TBCI::TMatrix< T >::transposed_copy().

template<typename T>
F_TMatrix<T> TBCI::transpose ( const F_TMatrix< T > &  ftm  )  [inline]

Definition at line 1661 of file f_matrix.h.

References TBCI::F_TMatrix< T >::transposed_copy().

template<typename T>
F_BandMatrix<T> TBCI::transpose ( const F_BandMatrix< T > &  fbd  )  [inline]

Definition at line 628 of file f_bandmatrix.h.

References TBCI::F_BandMatrix< T >::transposed_copy().

template<typename T>
CSCMatrix<T> TBCI::transpose ( const CSCMatrix< T > &  cscm  )  [inline]

Definition at line 910 of file cscmatrix.h.

References TBCI::CSCMatrix< T >::transposed_copy().

template<typename T>
CRMatrix<T> TBCI::transpose ( const CRMatrix< T > &  crm  )  [inline]

Definition at line 766 of file crmatrix.h.

References TBCI::CRMatrix< T >::transposed_copy().

template<typename T>
BdMatrix<T> TBCI::transpose ( BdMatrix< T > &  mat  )  [inline]

Definition at line 1362 of file band_matrix.h.

template<typename SysMatrix, typename SysVector>
void TBCI::Update ( SysVector &  x,
int  k,
SysMatrix &  h,
SysVector &  s,
SysVector *  V 
) [inline]

Definition at line 22 of file gmres.h.

References y.

Referenced by GMRES().


Variable Documentation

Thread Control structure

bool TBCI::bound_main = false

Definition at line 96 of file smp.cc.

Referenced by bind_threads(), and free_threads().

Definition at line 94 of file smp.cc.

Referenced by bind_threads(), free_threads(), and init_threads().

unsigned long TBCI::poll_fail = 0

Definition at line 319 of file smp.cc.

unsigned long TBCI::poll_succ = 0

Definition at line 318 of file smp.cc.

unsigned long TBCI::polls_fail = 0

Definition at line 321 of file smp.cc.

unsigned long TBCI::polls_succ = 0

Definition at line 320 of file smp.cc.

struct thr_ctrl * TBCI::this_thread = 0 [read]

Definition at line 99 of file smp.cc.

Definition at line 292 of file smp.cc.

struct thr_ctrl * TBCI::threads = 0 [read]

Definition at line 93 of file smp.cc.

Referenced by dot(), TBCI::Vector< T >::operator*(), and par_comp().

bool TBCI::threads_bound = false

Definition at line 95 of file smp.cc.

Referenced by bind_threads(), and free_threads().

int TBCI::thrno = 0

Definition at line 627 of file smp.cc.


Generated on Wed Nov 20 09:29:14 2013 for TBCI Numerical high perf. C++ Library by  doxygen 1.5.6