ImFusion SDK 4.3
WeightedL2Pow2< OperandT > Class Template Reference

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

Weighted L2 squared norm functional with diagonal weighting matrix. More...

+ Inheritance diagram for WeightedL2Pow2< OperandT >:

Detailed Description

template<typename OperandT>
class ImFusion::CT::WeightedL2Pow2< OperandT >

Weighted L2 squared norm functional with diagonal weighting matrix.

Implements \(\frac{1}{2} (Ax-b)^\top W (Ax-b)\) where W is a diagonal weighting matrix.

Template Parameters
OperandTExpression type for the weighting

Public Member Functions

 WeightedL2Pow2 (const OperandT &operand, std::unique_ptr< LinearResidual > residual)
 Constructor with residual.
 
 WeightedL2Pow2 (const OperandT &operand, std::unique_ptr< LinearOperator > A, SharedImageSet *b)
 Constructor which implicitly constructs a residual.
 
 ~WeightedL2Pow2 () override=default
 Destructor.
 
- Public Member Functions inherited from Functional
 Functional (std::unique_ptr< LinearResidual > residual, bool hessianRequiresResidualEval=true)
 Constructor with residual. This residual can be nullptr, which is taken as shorthand for the identity.
 
 Functional (std::unique_ptr< LinearOperator > A, SharedImageSet *b, bool hessianRequiresResidualEval=true)
 Constructor which implicitly constructs a residual that owns the LinearOperator.
 
virtual ~Functional ()=0
 Destructor.
 
float eval (const SharedImageSet &in) const
 Evaluates the functional \(f(in)\).
 
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel=nullptr, const ExprBase *exprOut=nullptr) const
 Evaluates the gradient \(\nabla f(in)\).
 
template<typename ImplName>
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel, const ImageMath::ExprBaseTpl< ImplName > *exprOut)
 Convenience function which wraps exprOut in sharedPolyWrapper.
 
std::unique_ptr< LinearOperatorhessian (const SharedImageSet &in) const
 Evaluates the hessian \(H_f(in)\).
 
const LinearResidualresidual () const
 Const getter for m_residual.
 
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 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
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 

Protected Member Functions

float evalImpl (const SharedImageSet &in) const override
 Evaluation of this functional (without residual)
 
Status gradientImpl (const SharedImageSet &in, SharedImageSet &out) const override
 Gradient of this functional (without residual). Should be selection aware.
 
std::unique_ptr< LinearOperatorhessianImpl (const SharedImageSet &in) const override
 Hessian of this functional (without residual)
 

Protected Attributes

OperandT m_operand
 operand
 
- Protected Attributes inherited from Functional
std::unique_ptr< LinearResidualm_residual
 optional residual.
 
const bool m_hessianRequiresResidualEval = true
 if set to false the result of hessianImpl is expected not to depend on the input
 
detail::SparseSharedImageSet m_residualTempSparseSharedImageSet
 Sparse tmp image.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Additional Inherited Members

- Public Types inherited from Functional
using ExprBase = ImageMath::ExprBase
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Member Function Documentation

◆ evalImpl()

template<typename OperandT>
float evalImpl ( const SharedImageSet & in) const
inlineoverrideprotectedvirtual

Evaluation of this functional (without residual)

Implements Functional.

◆ gradientImpl()

template<typename OperandT>
Status gradientImpl ( const SharedImageSet & in,
SharedImageSet & out ) const
inlineoverrideprotectedvirtual

Gradient of this functional (without residual). Should be selection aware.

Implements Functional.

◆ hessianImpl()

template<typename OperandT>
std::unique_ptr< LinearOperator > hessianImpl ( const SharedImageSet & in) const
inlineoverrideprotectedvirtual

Hessian of this functional (without residual)

Implements Functional.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close