WPILibC++ 2027.0.0-alpha-2
Loading...
Searching...
No Matches
slp::detail::ConstExpression Struct Referencefinal

Derived expression type for constant. More...

#include </home/runner/work/allwpilib/allwpilib/wpimath/src/main/native/thirdparty/sleipnir/include/sleipnir/autodiff/expression.hpp>

Inheritance diagram for slp::detail::ConstExpression:
slp::detail::Expression

Public Member Functions

constexpr ConstExpression ()=default
 Constructs a constant expression with a value of zero.
 
constexpr ConstExpression (double value)
 Constructs a nullary expression (an operator with no arguments).
 
double value (double, double) const override
 Either nullary operator with no arguments, unary operator with one argument, or binary operator with two arguments.
 
ExpressionType type () const override
 Returns the type of this expression (constant, linear, quadratic, or nonlinear).
 
- Public Member Functions inherited from slp::detail::Expression
constexpr Expression ()=default
 Constructs a constant expression with a value of zero.
 
constexpr Expression (double value)
 Constructs a nullary expression (an operator with no arguments).
 
constexpr Expression (ExpressionPtr lhs)
 Constructs an unary expression (an operator with one argument).
 
constexpr Expression (ExpressionPtr lhs, ExpressionPtr rhs)
 Constructs a binary expression (an operator with two arguments).
 
virtual ~Expression ()=default
 
constexpr bool is_constant (double constant) const
 Returns true if the expression is the given constant.
 
virtual double grad_l (double lhs, double rhs, double parent_adjoint) const
 Returns double adjoint of the left child expression.
 
virtual double grad_r (double lhs, double rhs, double parent_adjoint) const
 Returns double adjoint of the right child expression.
 
virtual ExpressionPtr grad_expr_l (const ExpressionPtr &lhs, const ExpressionPtr &rhs, const ExpressionPtr &parent_adjoint) const
 Returns Expression adjoint of the left child expression.
 
virtual ExpressionPtr grad_expr_r (const ExpressionPtr &lhs, const ExpressionPtr &rhs, const ExpressionPtr &parent_adjoint) const
 Returns Expression adjoint of the right child expression.
 

Additional Inherited Members

- Public Attributes inherited from slp::detail::Expression
double val = 0.0
 The value of the expression node.
 
double adjoint = 0.0
 The adjoint of the expression node used during autodiff.
 
uint32_t incoming_edges = 0
 Counts incoming edges for this node.
 
int32_t col = -1
 This expression's column in a Jacobian, or -1 otherwise.
 
ExpressionPtr adjoint_expr
 The adjoint of the expression node used during gradient expression tree generation.
 
uint32_t ref_count = 0
 Reference count for intrusive shared pointer.
 
std::array< ExpressionPtr, 2 > args {nullptr, nullptr}
 Expression arguments.
 

Detailed Description

Derived expression type for constant.

Constructor & Destructor Documentation

◆ ConstExpression() [1/2]

slp::detail::ConstExpression::ConstExpression ( )
constexprdefault

Constructs a constant expression with a value of zero.

◆ ConstExpression() [2/2]

slp::detail::ConstExpression::ConstExpression ( double value)
inlineexplicitconstexpr

Constructs a nullary expression (an operator with no arguments).

Parameters
valueThe expression value.

Member Function Documentation

◆ type()

ExpressionType slp::detail::ConstExpression::type ( ) const
inlineoverridevirtual

Returns the type of this expression (constant, linear, quadratic, or nonlinear).

Returns
The type of this expression.

Implements slp::detail::Expression.

◆ value()

double slp::detail::ConstExpression::value ( double lhs,
double rhs ) const
inlineoverridevirtual

Either nullary operator with no arguments, unary operator with one argument, or binary operator with two arguments.

This operator is used to update the node's value.

Parameters
lhsLeft argument to binary operator.
rhsRight argument to binary operator.
Returns
The node's value.

Implements slp::detail::Expression.


The documentation for this struct was generated from the following file: