Public Member Functions | Protected Member Functions | Protected Attributes
dynamMetric Class Reference

#include <dynamMetric.h>

Inheritance diagram for dynamMetric:
baseHamiltonian denseFisherMetric diagOuterSoftAbsMetric diagSoftAbsMetric outerSoftAbsMetric softAbsMetric fisherBayesLogReg softAbsBayesLogReg softAbsFunnel

List of all members.

Public Member Functions

 dynamMetric (int dim)
virtual double tau ()=0
 Return the quadratic form of the kinetic energy.
double phi ()
 Return the pseudo-potential.
void setMaxNumFixedPoint (int n)
 Set the maximum number of fixed-point iterations for implicit updates.
void setFixedPointThreshold (double t)
 Set the difference threshold for terminating fixed-point iterations.
void evolveQ (const double epsilon)
 Evolve the position through some time epsilon.
void beginEvolveP (const double epsilon)
 Evolve the momenta through an initial half step of time epsilon.
void finishEvolveP (const double epsilon)
 Evolve the momenta through a final half step of time epsilon.
virtual void prepareEvolution ()

Protected Member Functions

virtual void fComputeMetric ()=0
 Compute the metric at the current position.
virtual void fUpdateP ()
 Update any momenta-dependent auxiliary terms.
virtual void fPrepareSpatialGradients ()
virtual void fHatT (const double epsilon)
 Evolve

\[ \hat{T} = p_{i} \Lambda^{ij} \frac{ \partial }{ \partial q_{j} }\]

.

virtual void fHatTau (const double epsilon, const int numFixedPoint)
void fHatPhi (const double epsilon)
virtual VectorXd & dTaudp ()=0
 Gradient of the quadrtic form with respect to the momenta.
virtual VectorXd & dTaudq ()=0
 Gradient of the quadratic form with respect to the position.
virtual VectorXd & dPhidq ()=0
 Gradient of the psuedo-potential with respect to the momenta.

Protected Attributes

int mMaxNumFixedPoint
 Maximum number of fixed-point iterations for implicit updates.
double mFixedPointThreshold
 Difference threshold for terminating fixed-point iterations.
VectorXd mAuxVector
 Auxiliary vector for storing various gradients.
VectorXd mInit
 Auxiliary vector for fixed-point iterations.
VectorXd mDelta
 Auxiliary vector for fixed-point iteration termination criteria.
double mLogDetMetric
 Log determinant of the metric.

Detailed Description

Author:
Michael Betancourt

Abstract base class defining the interface for a Hamiltonian defined on a Riemannian manifold, $ H = \tau + \phi $, where

\[ \tau = \frac{1}{2} p_{i} p_{j} \Lambda^{ij} \! \left( \mathbf{q} \right) \]

and

\[ \frac{1}{2} \log \! \left| \mathbf{\Sigma} \! \left( \mathbf{q} \right) \right| + V ! \left( \mathbf{q} \right). \]

The Poisson operators are defined as

\[ \hat{H} = \frac{1}{2} \hat{\phi} + \frac{1}{2} \hat{\tau} + \hat{T} + \frac{1}{2} \hat{\tau} + \frac{1}{2} \hat{\phi}, \]

where

\[ \hat{\phi} = \frac{\partial}{\partial q_{i}} \left( \frac{1}{2} \log \! \left| \mathbf{\Sigma} \right| + V \right) \frac{ \partial }{ \partial p_{i} }, \]

\[ \hat{\tau} = - \frac{\partial}{\partial q_{k}} \left( \frac{1}{2} p_{i} p_{j} \Lambda^{ij} \right) \frac{ \partial }{ \partial p_{k} },\]

and

\[ \hat{T} = p_{i} \left(\Lambda \right)^{ij} \frac{ \partial }{ \partial q_{j} }. \]


Constructor & Destructor Documentation

dynamMetric::dynamMetric ( int  dim) [explicit]

Constructor

Parameters:
dimDimension of the target space

Member Function Documentation

void dynamMetric::fHatPhi ( const double  epsilon) [protected]

Evolve

\[ \hat{\phi} = \frac{\partial}{\partial q_{i}} \left( \frac{1}{2} \log \! \left| \mathbf{\Sigma} \right| + V \right) \frac{ \partial }{ \partial p_{i} }\]

void dynamMetric::fHatTau ( const double  epsilon,
const int  numFixedPoint 
) [protected, virtual]

Evolve

\[ \hat{\tau} = - \frac{\partial}{\partial q_{k}} \left( \frac{1}{2} p_{i} p_{j} \Lambda^{ij} \right) \frac{ \partial }{ \partial p_{k} }.\]

virtual void dynamMetric::fPrepareSpatialGradients ( ) [inline, protected, virtual]

Update any position-dependent auxiliary terms in preparation for spatial gradients

Reimplemented in diagOuterSoftAbsMetric, diagSoftAbsMetric, outerSoftAbsMetric, and softAbsMetric.

virtual void dynamMetric::prepareEvolution ( ) [inline, virtual]

Perform any necessary calculations before simulation Hamiltonian dynamics

Reimplemented from baseHamiltonian.

Reimplemented in denseFisherMetric, and outerSoftAbsMetric.

Examples:
examples/main.cpp.

The documentation for this class was generated from the following files:
 All Classes Functions Variables