Barrier¶ template <typename T = double> class BarrierBase;¶ Inheritance diagram for ipc::BarrierBase: digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="ipc::BarrierBase< T >" tooltip="ipc::BarrierBase< T >" fillcolor="#BFBFBF"] "2" [label="ipc::BarrierBase< double >" tooltip="ipc::BarrierBase< double >"] "3" [label="ipc::ClampedLogBarrier< T >" tooltip="ipc::ClampedLogBarrier< T >"] "5" [label="ipc::ClampedLogSqBarrier< T >" tooltip="ipc::ClampedLogSqBarrier< T >"] "6" [label="ipc::CubicBarrier< T >" tooltip="ipc::CubicBarrier< T >"] "7" [label="ipc::InversePowerBarrier< T >" tooltip="ipc::InversePowerBarrier< T >"] "8" [label="ipc::NearFarBarrier< T >" tooltip="ipc::NearFarBarrier< T >"] "4" [label="ipc::NormalizedBarrier< ClampedLogBarrier< T > >" tooltip="ipc::NormalizedBarrier< ClampedLogBarrier< T > >"] "9" [label="ipc::TwoStageBarrier< T >" tooltip="ipc::TwoStageBarrier< T >"] "2" -> "1" [dir=forward tooltip="template-instance"] "3" -> "2" [dir=forward tooltip="public-inheritance"] "5" -> "2" [dir=forward tooltip="public-inheritance"] "6" -> "2" [dir=forward tooltip="public-inheritance"] "7" -> "2" [dir=forward tooltip="public-inheritance"] "8" -> "2" [dir=forward tooltip="public-inheritance"] "4" -> "3" [dir=forward tooltip="public-inheritance"] "9" -> "2" [dir=forward tooltip="public-inheritance"] } Base class for barrier functions. Public Functions¶ BarrierBase() = default;¶ virtual ~BarrierBase() = default;¶ virtual T operator()(const T d, const T dhat) const = 0;¶ Evaluate the barrier function. Parameters:¶ const T d¶Distance. const T dhat¶Activation distance of the barrier. Returns:¶ The value of the barrier function at d. virtual T first_derivative(const T d, const T dhat) const = 0;¶ Evaluate the first derivative of the barrier function wrt d. Parameters:¶ const T d¶Distance. const T dhat¶Activation distance of the barrier. Returns:¶ The value of the first derivative of the barrier function at d. virtual T second_derivative(const T d, const T dhat) const = 0;¶ Evaluate the second derivative of the barrier function wrt d. Parameters:¶ const T d¶Distance. const T dhat¶Activation distance of the barrier. Returns:¶ The value of the second derivative of the barrier function at d. virtual T units(const T dhat) const = 0;¶ Get the units of the barrier function. Essentially, barrier(d, d̂) / units(d̂) should be dimensionless. Parameters:¶ const T dhat¶The activation distance of the barrier. Returns:¶ The units of the barrier function. Protected Types¶ using value_type = T;¶