Skip to content

shapeworks::DisentangledCorrespondenceFunction

More...

#include <DisentangledCorrespondenceFunction.h>

Inherits from shapeworks::VectorFunction

Public Types

Name
typedef LegacyShapeMatrix ShapeMatrixType
typedef ShapeMatrixType::DataType DataType
typedef VectorFunction::VectorType VectorType
typedef ParticleSystem::PointType PointType
typedef vnl_vector< DataType > vnl_vector_type
typedef vnl_matrix< DataType > vnl_matrix_type
typedef std::shared_ptr< std::vector< vnl_matrix_type > > shared_vnl_matrix_array_type

Public Functions

Name
std::shared_ptr< DisentangledCorrespondenceFunction > New()
Factory method for creating instances.
virtual VectorType evaluate(unsigned int , unsigned int , const ParticleSystem * , double & , double & ) const
virtual VectorType evaluate(unsigned int , unsigned int , const ParticleSystem * , double & maxtimestep) const
virtual double energy(unsigned int a, unsigned int b, const ParticleSystem * c) const
void WriteModes(const std::string & , int ) const
void SetShapeMatrix(ShapeMatrixType * s)
ShapeMatrixType * GetShapeMatrix()
const ShapeMatrixType * GetShapeMatrix() const
virtual void before_iteration()
virtual void after_iteration() override
void SetMinimumVariance(double d)
double GetMinimumVariance() const
void SetMinimumVarianceDecay(double initial_value, double final_value, double time_period)
bool GetMinimumVarianceDecayConstant() const
void PrintShapeMatrix()
void UseMeanenergy()
void UseEntropy()
bool GetHoldMinimumVariance() const
void SetHoldMinimumVariance(bool b)
void SetRecomputeCovarianceInterval(int i)
int GetRecomputeCovarianceInterval() const
virtual std::shared_ptr< VectorFunction > clone() override
DisentangledCorrespondenceFunction()
~DisentangledCorrespondenceFunction() override =default

Protected Functions

Name
DisentangledCorrespondenceFunction(const DisentangledCorrespondenceFunction & ) =delete
DisentangledCorrespondenceFunction & operator=(const DisentangledCorrespondenceFunction & ) =delete
virtual void ComputeCovarianceMatrices()
void Initialize()

Public Attributes

Name
constexpr static unsigned int VDimension
constexpr static unsigned int Dimension

Protected Attributes

Name
ShapeMatrixType::Pointer m_ShapeMatrix
double m_MinimumVariance
double m_MinimumEigenValue
std::vector< double > m_MinimumEigenValue_time_cohort
std::vector< double > m_MinimumEigenValue_shape_cohort
double m_CurrentEnergy
bool m_HoldMinimumVariance
double m_MinimumVarianceDecayConstant
int m_RecomputeCovarianceInterval
int m_Counter
bool m_UseMeanEnergy
std::shared_ptr< std::vector< Eigen::MatrixXd > > m_InverseCovMatrices_time_cohort
std::shared_ptr< std::vector< Eigen::MatrixXd > > m_InverseCovMatrices_shape_cohort
shared_vnl_matrix_array_type m_points_mean_time_cohort
shared_vnl_matrix_array_type m_points_mean_shape_cohort
shared_vnl_matrix_array_type m_Time_PointsUpdate
shared_vnl_matrix_array_type m_Shape_PointsUpdate

Additional inherited members

Public Functions inherited from shapeworks::VectorFunction

Name
virtual void reset_buffers()
May be called by the solver class.
virtual void before_evaluate(unsigned int , unsigned int , const ParticleSystem * )
virtual void set_particle_system(ParticleSystem * p)
Some subclasses may require a pointer to the particle system and its domain number.
virtual ParticleSystem * get_particle_system() const
virtual void set_domain_number(unsigned int i)
virtual int get_domain_number() const
virtual double get_relative_energy_scaling() const
virtual void set_relative_energy_scaling(double r)
virtual ~VectorFunction() =default
Virtual destructor for proper cleanup of derived classes.

Protected Functions inherited from shapeworks::VectorFunction

Name
VectorFunction()
VectorFunction(const VectorFunction & ) =delete

Protected Attributes inherited from shapeworks::VectorFunction

Name
ParticleSystem * particle_system_
unsigned int domain_number_

Detailed Description

class shapeworks::DisentangledCorrespondenceFunction;

This class implements the Correspondence Term where the entropy computation is disentangled across time and shape domain, and builds a Sapatiotemporal SSM.

Public Types Documentation

typedef ShapeMatrixType

typedef LegacyShapeMatrix shapeworks::DisentangledCorrespondenceFunction::ShapeMatrixType;

typedef DataType

typedef ShapeMatrixType::DataType shapeworks::DisentangledCorrespondenceFunction::DataType;

typedef VectorType

typedef VectorFunction::VectorType shapeworks::DisentangledCorrespondenceFunction::VectorType;

Vector & Point types.

typedef PointType

typedef ParticleSystem::PointType shapeworks::DisentangledCorrespondenceFunction::PointType;

typedef vnl_vector_type

typedef vnl_vector<DataType> shapeworks::DisentangledCorrespondenceFunction::vnl_vector_type;

typedef vnl_matrix_type

typedef vnl_matrix<DataType> shapeworks::DisentangledCorrespondenceFunction::vnl_matrix_type;

typedef shared_vnl_matrix_array_type

typedef std::shared_ptr<std::vector<vnl_matrix_type> > shapeworks::DisentangledCorrespondenceFunction::shared_vnl_matrix_array_type;

Public Functions Documentation

function New

static inline std::shared_ptr< DisentangledCorrespondenceFunction > New()

Factory method for creating instances.

function evaluate

virtual VectorType evaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystem * ,
    double & ,
    double & 
) const

Reimplements: shapeworks::VectorFunction::evaluate

The first argument is a pointer to the particle system. The second argument is the index of the domain within that particle system. The third argument is the index of the particle location within the given domain.

function evaluate

inline virtual VectorType evaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystem * ,
    double & maxtimestep
) const

Reimplements: shapeworks::VectorFunction::evaluate

The first argument is a pointer to the particle system. The second argument is the index of the domain within that particle system. The third argument is the index of the particle location within the given domain.

function energy

inline virtual double energy(
    unsigned int a,
    unsigned int b,
    const ParticleSystem * c
) const

Reimplements: shapeworks::VectorFunction::energy

function WriteModes

void WriteModes(
    const std::string & ,
    int 
) const

Write the first n modes to +- 3 std dev and the mean of the model described by the covariance matrix. The string argument is a prefix to the file names.

function SetShapeMatrix

inline void SetShapeMatrix(
    ShapeMatrixType * s
)

Access the shape matrix.

function GetShapeMatrix

inline ShapeMatrixType * GetShapeMatrix()

function GetShapeMatrix

inline const ShapeMatrixType * GetShapeMatrix() const

function before_iteration

inline virtual void before_iteration()

Reimplements: shapeworks::VectorFunction::before_iteration

Called before each iteration of a solver.

function after_iteration

inline virtual void after_iteration() override

Reimplements: shapeworks::VectorFunction::after_iteration

Called after each iteration of the solver.

function SetMinimumVariance

inline void SetMinimumVariance(
    double d
)

function GetMinimumVariance

inline double GetMinimumVariance() const

function SetMinimumVarianceDecay

inline void SetMinimumVarianceDecay(
    double initial_value,
    double final_value,
    double time_period
)

function GetMinimumVarianceDecayConstant

inline bool GetMinimumVarianceDecayConstant() const

function PrintShapeMatrix

inline void PrintShapeMatrix()

function UseMeanenergy

inline void UseMeanenergy()

function UseEntropy

inline void UseEntropy()

function GetHoldMinimumVariance

inline bool GetHoldMinimumVariance() const

function SetHoldMinimumVariance

inline void SetHoldMinimumVariance(
    bool b
)

function SetRecomputeCovarianceInterval

inline void SetRecomputeCovarianceInterval(
    int i
)

function GetRecomputeCovarianceInterval

inline int GetRecomputeCovarianceInterval() const

function clone

inline virtual std::shared_ptr< VectorFunction > clone() override

Reimplements: shapeworks::VectorFunction::clone

function DisentangledCorrespondenceFunction

inline DisentangledCorrespondenceFunction()

function ~DisentangledCorrespondenceFunction

~DisentangledCorrespondenceFunction() override =default

Protected Functions Documentation

function DisentangledCorrespondenceFunction

DisentangledCorrespondenceFunction(
    const DisentangledCorrespondenceFunction & 
) =delete

function operator=

DisentangledCorrespondenceFunction & operator=(
    const DisentangledCorrespondenceFunction & 
) =delete

function ComputeCovarianceMatrices

virtual void ComputeCovarianceMatrices()

function Initialize

inline void Initialize()

Public Attributes Documentation

variable VDimension

static constexpr static unsigned int VDimension = 3;

variable Dimension

static constexpr static unsigned int Dimension = VDimension;

Protected Attributes Documentation

variable m_ShapeMatrix

ShapeMatrixType::Pointer m_ShapeMatrix;

variable m_MinimumVariance

double m_MinimumVariance;

variable m_MinimumEigenValue

double m_MinimumEigenValue;

variable m_MinimumEigenValue_time_cohort

std::vector< double > m_MinimumEigenValue_time_cohort;

variable m_MinimumEigenValue_shape_cohort

std::vector< double > m_MinimumEigenValue_shape_cohort;

variable m_CurrentEnergy

double m_CurrentEnergy;

variable m_HoldMinimumVariance

bool m_HoldMinimumVariance;

variable m_MinimumVarianceDecayConstant

double m_MinimumVarianceDecayConstant;

variable m_RecomputeCovarianceInterval

int m_RecomputeCovarianceInterval;

variable m_Counter

int m_Counter;

variable m_UseMeanEnergy

bool m_UseMeanEnergy;

variable m_InverseCovMatrices_time_cohort

std::shared_ptr< std::vector< Eigen::MatrixXd > > m_InverseCovMatrices_time_cohort;

variable m_InverseCovMatrices_shape_cohort

std::shared_ptr< std::vector< Eigen::MatrixXd > > m_InverseCovMatrices_shape_cohort;

variable m_points_mean_time_cohort

shared_vnl_matrix_array_type m_points_mean_time_cohort;

variable m_points_mean_shape_cohort

shared_vnl_matrix_array_type m_points_mean_shape_cohort;

variable m_Time_PointsUpdate

shared_vnl_matrix_array_type m_Time_PointsUpdate;

variable m_Shape_PointsUpdate

shared_vnl_matrix_array_type m_Shape_PointsUpdate;

Updated on 2025-12-17 at 23:05:25 +0000