HDK
openvdb::OPENVDB_VERSION_NAME::math::pcg Namespace Reference

internal

## Classes

class  Vector
Lightweight, variable-length vector. More...

class  SparseStencilMatrix
Sparse, square matrix representing a 3D stencil operator of size STENCIL_SIZE. More...

class  Preconditioner
Base class for conjugate gradient preconditioners. More...

class  JacobiPreconditioner
Diagonal preconditioner. More...

class  IncompleteCholeskyPreconditioner
Preconditioner using incomplete Cholesky factorization. More...

struct  State

## Typedefs

using SizeType = Index32

using SizeRange = tbb::blocked_range< SizeType >

using VectorS = Vector< float >

using VectorD = Vector< double >

## Functions

template<typename ValueType >
State terminationDefaults ()
Return default termination conditions for a conjugate gradient solver. More...

template<typename PositiveDefMatrix >
State solve (const PositiveDefMatrix &A, const Vector< typename PositiveDefMatrix::ValueType > &b, Vector< typename PositiveDefMatrix::ValueType > &x, Preconditioner< typename PositiveDefMatrix::ValueType > &preconditioner, const State &termination=terminationDefaults< typename PositiveDefMatrix::ValueType >())
Solve Ax = b via the preconditioned conjugate gradient method. More...

template<typename PositiveDefMatrix , typename Interrupter >
State solve (const PositiveDefMatrix &A, const Vector< typename PositiveDefMatrix::ValueType > &b, Vector< typename PositiveDefMatrix::ValueType > &x, Preconditioner< typename PositiveDefMatrix::ValueType > &preconditioner, Interrupter &interrupter, const State &termination=terminationDefaults< typename PositiveDefMatrix::ValueType >())
Solve Ax = b via the preconditioned conjugate gradient method. More...

std::ostream & operator<< (std::ostream &os, const State &state)

## Typedef Documentation

 using openvdb::OPENVDB_VERSION_NAME::math::pcg::SizeRange = typedef tbb::blocked_range

Definition at line 62 of file ConjGradient.h.

 using openvdb::OPENVDB_VERSION_NAME::math::pcg::SizeType = typedef Index32

Definition at line 60 of file ConjGradient.h.

 using openvdb::OPENVDB_VERSION_NAME::math::pcg::VectorD = typedef Vector

Definition at line 255 of file ConjGradient.h.

 using openvdb::OPENVDB_VERSION_NAME::math::pcg::VectorS = typedef Vector

Definition at line 254 of file ConjGradient.h.

## Function Documentation

 std::ostream& openvdb::OPENVDB_VERSION_NAME::math::pcg::operator<< ( std::ostream & os, const State & state )
inline

Definition at line 572 of file ConjGradient.h.

template<typename PositiveDefMatrix >
 State openvdb::OPENVDB_VERSION_NAME::math::pcg::solve ( const PositiveDefMatrix & A, const Vector< typename PositiveDefMatrix::ValueType > & b, Vector< typename PositiveDefMatrix::ValueType > & x, Preconditioner< typename PositiveDefMatrix::ValueType > & preconditioner, const State & termination = terminationDefaults() )
inline

Solve Ax = b via the preconditioned conjugate gradient method.

Parameters
 A a symmetric, positive-definite, N x N matrix b a vector of size N x a vector of size N preconditioner a Preconditioner matrix termination termination conditions given as a State object with the following fields: success ignored iterations the maximum number of iterations, with or without convergence relativeError the relative error ||b − A || / ||b|| that denotes convergence absoluteError the absolute error ||b − A || that denotes convergence
Exceptions
 ArithmeticError if either x or b is not of the appropriate size.

Definition at line 1639 of file ConjGradient.h.

template<typename PositiveDefMatrix , typename Interrupter >
 State openvdb::OPENVDB_VERSION_NAME::math::pcg::solve ( const PositiveDefMatrix & A, const Vector< typename PositiveDefMatrix::ValueType > & b, Vector< typename PositiveDefMatrix::ValueType > & x, Preconditioner< typename PositiveDefMatrix::ValueType > & preconditioner, Interrupter & interrupter, const State & termination = terminationDefaults() )
inline

Solve Ax = b via the preconditioned conjugate gradient method.

Parameters
 A a symmetric, positive-definite, N x N matrix b a vector of size N x a vector of size N preconditioner a Preconditioner matrix termination termination conditions given as a State object with the following fields: success ignored iterations the maximum number of iterations, with or without convergence relativeError the relative error ||b − A || / ||b|| that denotes convergence absoluteError the absolute error ||b − A || that denotes convergence interrupter an object adhering to the util::NullInterrupter interface with which computation can be interrupted
Exceptions
 ArithmeticError if either x or b is not of the appropriate size. RuntimeError if the computation is interrupted.

Definition at line 1653 of file ConjGradient.h.

template<typename ValueType >
 State openvdb::OPENVDB_VERSION_NAME::math::pcg::terminationDefaults ( )
inline

Return default termination conditions for a conjugate gradient solver.

Definition at line 84 of file ConjGradient.h.