Barrier

class Barrier;

Inheritance diagram for ipc::Barrier:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="ipc::Barrier" tooltip="ipc::Barrier" fillcolor="#BFBFBF"] "2" [label="ipc::ClampedLogBarrier" tooltip="ipc::ClampedLogBarrier"] "3" [label="ipc::ClampedLogSqBarrier" tooltip="ipc::ClampedLogSqBarrier"] "4" [label="ipc::CubicBarrier" tooltip="ipc::CubicBarrier"] "2" -> "1" [dir=forward tooltip="public-inheritance"] "3" -> "1" [dir=forward tooltip="public-inheritance"] "4" -> "1" [dir=forward tooltip="public-inheritance"] }

Base class for barrier functions.

Subclassed by ipc::ClampedLogBarrier, ipc::ClampedLogSqBarrier, ipc::CubicBarrier

Public Functions

Barrier() = default;
virtual ~Barrier() = default;
virtual double operator()(const double dconst double dhat) const
   
 = 0;

Evaluate the barrier function.

Parameters:
const double d

Distance.

const double dhat

Activation distance of the barrier.

Returns:

The value of the barrier function at d.

virtual double first_derivative(
    
const double dconst double dhat) const
   
 = 0;

Evaluate the first derivative of the barrier function wrt d.

Parameters:
const double d

Distance.

const double dhat

Activation distance of the barrier.

Returns:

The value of the first derivative of the barrier function at d.

virtual double second_derivative(
    
const double dconst double dhat) const
   
 = 0;

Evaluate the second derivative of the barrier function wrt d.

Parameters:
const double d

Distance.

const double dhat

Activation distance of the barrier.

Returns:

The value of the second derivative of the barrier function at d.

virtual double units(const double dhat) const = 0;

Get the units of the barrier function.

Parameters:
const double dhat

The activation distance of the barrier.

Returns:

The units of the barrier function.