20 #ifndef MIRTK_LogJacobianConstraint_H 21 #define MIRTK_LogJacobianConstraint_H 23 #include "mirtk/JacobianConstraint.h" 29 class FreeFormTransformation;
62 mirtkPublicAttributeMacro(
double, Epsilon);
97 double l = log(_Epsilon);
98 double m = 2. * log(_Epsilon) / _Epsilon;
99 double t = l * l - m * _Epsilon;
110 if (det < _Epsilon) det = _Epsilon;
111 return 2. * log(det) / det;
119 #endif // MIRTK_LogJacobianConstraint_H virtual double DerivativeWrtJacobianDet(double det) const
Evaluate penalty derivative at control point location w.r.t. Jacobian determinant value...
virtual ParameterList Parameter() const
Get parameter key/value as string map.
Array< Pair< string, string > > ParameterList
Ordered list of parameter name/value pairs.
virtual bool SetWithoutPrefix(const char *, const char *)
Set parameter value from string.
virtual ~LogJacobianConstraint()
Destructor.
virtual ParameterList Parameter() const
Get parameter key/value as string map.
Squared logarithm of the Jacobian determinant.
virtual double Penalty(double det) const
Evaluate penalty at control point location given Jacobian determinant value.
LogJacobianConstraint(const char *="", bool=true)
Constructor.
virtual bool SetWithPrefix(const char *, const char *)
Set parameter value from string.