ImFusion C++ SDK 4.5.0
ImFusion::CT::StatisticallyWeightedLeastSquaresProblem Class Reference

#include <ImFusion/CT/Solver/StatisticallyWeightedLeastSquaresProblem.h>

Statistically weighted least-squares optimization problem. More...

Inheritance diagram for ImFusion::CT::StatisticallyWeightedLeastSquaresProblem:

Detailed Description

Statistically weighted least-squares optimization problem.

Uses WeightedL2Pow2 functional with statistical weighting based on measurement data. Mathematical representation: \(\mbox{argmin}_{x} \frac{1}{2} \|Ax-b\|^2_{2,W}\) with \(W = \exp(-b)\).

Public Member Functions

 StatisticallyWeightedLeastSquaresProblem (SharedImageSet &currentSolution, std::unique_ptr< LinearOperator > A, SharedImageSet &b)
Public Member Functions inherited from ImFusion::CT::OptimizationProblem
 OptimizationProblem (SharedImageSet &currentSolution, Functional *dataTerm, const std::list< RegTerm > &regTerms={})
 Constructor.
 OptimizationProblem (SharedImageSet &currentSolution, std::unique_ptr< Functional > dataTerm, std::list< RegTermOwning > regTerms={})
 Constructor.
float eval (const SharedImageSet &in) const
 Evaluates the problem \(f(x) = f_0 (x) + \sum_{i = 1}^N w_i f_i (x)\).
float eval () const
 Evaluates eval(m_currentSolution).
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel=nullptr, const ExprBase *exprOut=nullptr) const
 Evaluates the gradient \(\nabla f(in)\).
Status gradient (SharedImageSet &out, const Selection *sel=nullptr, const ExprBase *exprOut=nullptr) const
 Evaluates gradient(m_currentSolution, out, sel, exprOut).
template<typename ImplType>
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel=nullptr, const ImageMath::ExprBaseTpl< ImplType > *exprOut=nullptr) const
 Convenience function that wraps exprOut in a sharedPolyWrapper.
template<typename ImplType>
Status gradient (SharedImageSet &out, const Selection *sel=nullptr, const ImageMath::ExprBaseTpl< ImplType > *exprOut=nullptr) const
 Convenience function that wraps exprOut in a sharedPolyWrapper.
std::unique_ptr< LinearOperatorhessian (const SharedImageSet &in) const
 Return a LinearOperator representing the hessian matrix \( H_f(in) \).
std::unique_ptr< LinearOperatorhessian () const
 Evaluates hessian(m_currentSolution).
SharedImageSetcurrentSolution ()
 Getters for m_currentSolutions.
const SharedImageSetcurrentSolution () const
FunctionaldataTerm ()
 Getter for m_dataTerm.
const FunctionaldataTerm () const
 Const-getter for m_dataTerm.
std::list< RegTerm > & regTerms ()
 Getter for m_regTerms.
const std::list< RegTerm > & regTerms () const
 Const-getter for m_regTerms.
void configure (const Properties *p) override
 Configure this object instance by de-serializing the given Properties.
void configuration (Properties *p) const override
 Serialize the current object configuration into the given Properties object.
Public Member Functions inherited from ImFusion::Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 Configurable (const Configurable &rhs)
 Configurable (Configurable &&rhs) noexcept
Configurable & operator= (const Configurable &)
Configurable & operator= (Configurable &&) noexcept

Additional Inherited Members

Public Types inherited from ImFusion::CT::OptimizationProblem
using ExprBase = ImageMath::ExprBase
Public Attributes inherited from ImFusion::Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
Protected Attributes inherited from ImFusion::CT::OptimizationProblem
SharedImageSetm_currentSolution
 Current solution (non-owning). This may be set by a Solver.
Functionalm_dataTerm
 Data term of the optimization problem.
std::list< RegTermm_regTerms
 Regularization terms.
std::unique_ptr< Functionalm_dataTermOwning
 Owning data term of the optimization problem.
std::list< RegTermOwningm_regTermsOwning
 Owning regularization terms.
Protected Attributes inherited from ImFusion::Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.

The documentation for this class was generated from the following file:
  • ImFusion/CT/Solver/StatisticallyWeightedLeastSquaresProblem.h
Search Tab / S to search, Esc to close