UT_SparseMatrixRowT< T > Class Template Reference

#include <UT_SparseMatrix.h>

List of all members.

Classes

class  ut_MatrixCell

Public Member Functions

 UT_SparseMatrixRowT ()
 ~UT_SparseMatrixRowT ()
void buildFrom (UT_SparseMatrixT< T, false > &m, bool invertdiag=false, T tol=1e-5f)
int getNumRows () const
int getNumCols () const
int64 getMemoryUsage () const
 Return the amount of memory used by this array.
bool shouldMultiThread () const
int findCellFromRow (int row) const
 THREADED_METHOD2_CONST (UT_SparseMatrixRowT, shouldMultiThread(), multVec, const UT_VectorT< T > &, v, UT_VectorT< T > &, result) void multVecPartial(const UT_VectorT< T > &v
 THREADED_METHOD3_CONST (UT_SparseMatrixRowT, shouldMultiThread(), multVecAndDot, const UT_VectorT< T > &, v, UT_VectorT< T > &, result, fpreal64 *, dotpq) void multVecAndDotPartial(const UT_VectorT< T > &v
int solveUpperTriangular (UT_VectorT< T > &x, const UT_VectorT< T > &b, T tol=1e-5) const
int solveLowerTriangularTransposeNegate (UT_VectorT< T > &x, const UT_VectorT< T > &b, T tol=1e-5) const
float solveConjugateGradient (UT_VectorT< T > &x, const UT_VectorT< T > &b, UT_SparseMatrixRowT< T > *GT, T tol=1e-5, int max_iters=-1) const

Public Attributes

UT_VectorT< T > & result
UT_VectorT< T > const
UT_JobInfo &info 
const
UT_VectorT< T > fpreal64dotpq
UT_VectorT< T > fpreal64 const
UT_JobInfo &info 
const


Detailed Description

template<typename T>
class UT_SparseMatrixRowT< T >

This is a highly specialized varient of the SparseMatrix which does not let you change the number or position of cells It has, however, compiled fixed row offsets to make it fast to look up specific rows in the matrix.

Definition at line 345 of file UT_SparseMatrix.h.


Constructor & Destructor Documentation

template<typename T >
UT_SparseMatrixRowT< T >::UT_SparseMatrixRowT (  ) 

template<typename T >
UT_SparseMatrixRowT< T >::~UT_SparseMatrixRowT (  ) 


Member Function Documentation

template<typename T >
void UT_SparseMatrixRowT< T >::buildFrom ( UT_SparseMatrixT< T, false > &  m,
bool  invertdiag = false,
tol = 1e-5f 
)

template<typename T >
int UT_SparseMatrixRowT< T >::findCellFromRow ( int  row  )  const [inline]

Definition at line 381 of file UT_SparseMatrix.h.

template<typename T >
int64 UT_SparseMatrixRowT< T >::getMemoryUsage (  )  const

Return the amount of memory used by this array.

template<typename T >
int UT_SparseMatrixRowT< T >::getNumCols (  )  const [inline]

Definition at line 366 of file UT_SparseMatrix.h.

template<typename T >
int UT_SparseMatrixRowT< T >::getNumRows (  )  const [inline]

Definition at line 365 of file UT_SparseMatrix.h.

template<typename T >
bool UT_SparseMatrixRowT< T >::shouldMultiThread (  )  const [inline]

Definition at line 372 of file UT_SparseMatrix.h.

template<typename T >
float UT_SparseMatrixRowT< T >::solveConjugateGradient ( UT_VectorT< T > &  x,
const UT_VectorT< T > &  b,
UT_SparseMatrixRowT< T > *  GT,
tol = 1e-5,
int  max_iters = -1 
) const

Solves conjugate gradient using our specialized functions. These allow us to perform some normal and dot operations while the cache is still hot. This matrix is the matrix to solve. The provided GT matrix is the upper triangular result of cholesky factoriziation. Norm is hardcoded to 2.

template<typename T >
int UT_SparseMatrixRowT< T >::solveLowerTriangularTransposeNegate ( UT_VectorT< T > &  x,
const UT_VectorT< T > &  b,
tol = 1e-5 
) const

Given an upper triangular matrix, solves the lower triangular transposed of it and negates the result.

template<typename T >
int UT_SparseMatrixRowT< T >::solveUpperTriangular ( UT_VectorT< T > &  x,
const UT_VectorT< T > &  b,
tol = 1e-5 
) const

Assumes this is a lower triangular matrix. Solves the equation A x = b If the diagonal of A is zero within tolerance, the corresponding x coordinate is zero. Returned is the number of artifical zeros places into x. 0 means the solution encountered no singularities, 10 would mean 10 singularities.

template<typename T >
UT_SparseMatrixRowT< T >::THREADED_METHOD2_CONST ( UT_SparseMatrixRowT< T >  ,
shouldMultiThread()  ,
multVec  ,
const UT_VectorT< T > &  ,
v  ,
UT_VectorT< T > &  ,
result   
) const

template<typename T >
UT_SparseMatrixRowT< T >::THREADED_METHOD3_CONST ( UT_SparseMatrixRowT< T >  ,
shouldMultiThread()  ,
multVecAndDot  ,
const UT_VectorT< T > &  ,
v  ,
UT_VectorT< T > &  ,
result  ,
fpreal64 ,
dotpq   
) const


Member Data Documentation

template<typename T >
UT_VectorT<T> fpreal64 const UT_JobInfo& info UT_SparseMatrixRowT< T >::const

Definition at line 397 of file UT_SparseMatrix.h.

template<typename T >
UT_VectorT<T> const UT_JobInfo& info UT_SparseMatrixRowT< T >::const

Definition at line 388 of file UT_SparseMatrix.h.

template<typename T >
UT_VectorT<T> fpreal64* UT_SparseMatrixRowT< T >::dotpq

Definition at line 397 of file UT_SparseMatrix.h.

template<typename T >
UT_VectorT< T > & UT_SparseMatrixRowT< T >::result

Definition at line 388 of file UT_SparseMatrix.h.


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

Generated on Fri May 25 00:10:55 2012 for HDK by  doxygen 1.5.9