ClampedLogSqBarrier¶
-
template <typename T = double>
class ClampedLogSqBarrier : public ipc::BarrierBase<double>;¶ Inheritance diagram for ipc::ClampedLogSqBarrier:
Collaboration diagram for ipc::ClampedLogSqBarrier:
Clamped log barrier with a quadratic log term from [Huang et al. 2024].
Public Functions¶
- ClampedLogSqBarrier() = default;¶
- virtual T operator()(const T d, const T dhat) const override;¶
Function that grows to infinity as d approaches 0 from the right.
\[ b(d) = (d-\hat{d})^2\ln^2\left(\frac{d}{\hat{d}}\right) \]
- virtual T first_derivative(const T d, const T dhat) const override;¶
Derivative of the barrier function.
\[ b'(d) = 2 (d - \hat{d}) \ln\left(\frac{d}{\hat{d}}\right) \left[\ln\left(\frac{d}{\hat{d}}\right) + \frac{d - \hat{d}}{d}\right] \]
- virtual T second_derivative(const T d, const T dhat) const override;¶
Second derivative of the barrier function.
\[ b''(d) = 2 \left(\ln^2\left(\frac{d}{\hat{d}}\right) - \left( \ln\left(\frac{d}{\hat{d}}\right) - 1\right) \frac{(\hat{d} - d)^2}{d^2} - 4 \ln\left(\frac{d}{\hat{d}}\right) \frac{\hat{d} - d}{d}\right) \]