Sleipnir C++ API
Loading...
Searching...
No Matches
slp::Variable< Scalar_ > Class Template Reference

#include <sleipnir/autodiff/variable.hpp>

Inheritance diagram for slp::Variable< Scalar_ >:
slp::SleipnirBase

Public Types

using Scalar = Scalar_
 

Public Member Functions

 Variable ()=default
 
constexpr Variable (std::nullptr_t)
 
 Variable (Scalar value)
 
 Variable (SleipnirMatrixLike< Scalar > auto value)
 
 Variable (std::floating_point auto value)
 
 Variable (std::integral auto value)
 
 Variable (const detail::ExpressionPtr< Scalar > &expr)
 
constexpr Variable (detail::ExpressionPtr< Scalar > &&expr)
 
Variable< Scalar > & operator= (ScalarLike auto value)
 
void set_value (Scalar value)
 
Scalar value ()
 
ExpressionType type () const
 
Variable< Scalar > & operator*= (const Variable< Scalar > &rhs)
 
Variable< Scalar > & operator/= (const Variable< Scalar > &rhs)
 
Variable< Scalar > & operator+= (const Variable< Scalar > &rhs)
 
Variable< Scalar > & operator-= (const Variable< Scalar > &rhs)
 

Friends

class detail::AdjointExpressionGraph< Scalar >
 
template<typename Scalar , int UpLo>
class Hessian
 
template<typename Scalar >
class Jacobian
 
template<ScalarLike LHS, SleipnirScalarLike< Scalar > RHS>
Variable< Scalaroperator* (const LHS &lhs, const RHS &rhs)
 
template<SleipnirScalarLike< Scalar > LHS, ScalarLike RHS>
Variable< Scalaroperator* (const LHS &lhs, const RHS &rhs)
 
Variable< Scalaroperator* (const Variable< Scalar > &lhs, const Variable< Scalar > &rhs)
 
Variable< Scalaroperator/ (const Variable< Scalar > &lhs, const Variable< Scalar > &rhs)
 
Variable< Scalaroperator+ (const Variable< Scalar > &lhs, const Variable< Scalar > &rhs)
 
Variable< Scalaroperator- (const Variable< Scalar > &lhs, const Variable< Scalar > &rhs)
 
Variable< Scalaroperator- (const Variable< Scalar > &lhs)
 
Variable< Scalaroperator+ (const Variable< Scalar > &lhs)
 
template<typename Scalar >
Variable< Scalarabs (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalaracos (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarasin (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalaratan (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalaratan2 (const ScalarLike auto &y, const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalaratan2 (const Variable< Scalar > &y, const ScalarLike auto &x)
 
template<typename Scalar >
Variable< Scalaratan2 (const Variable< Scalar > &y, const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarcbrt (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarcos (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarcosh (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarerf (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarexp (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarhypot (const ScalarLike auto &x, const Variable< Scalar > &y)
 
template<typename Scalar >
Variable< Scalarhypot (const Variable< Scalar > &x, const ScalarLike auto &y)
 
template<typename Scalar >
Variable< Scalarhypot (const Variable< Scalar > &x, const Variable< Scalar > &y)
 
template<typename Scalar >
Variable< Scalarlog (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarlog10 (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarpow (const ScalarLike auto &base, const Variable< Scalar > &power)
 
template<typename Scalar >
Variable< Scalarpow (const Variable< Scalar > &base, const ScalarLike auto &power)
 
template<typename Scalar >
Variable< Scalarpow (const Variable< Scalar > &base, const Variable< Scalar > &power)
 
template<typename Scalar >
Variable< Scalarsign (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarsin (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarsinh (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarsqrt (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalartan (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalartanh (const Variable< Scalar > &x)
 
template<typename Scalar >
Variable< Scalarhypot (const Variable< Scalar > &x, const Variable< Scalar > &y, const Variable< Scalar > &z)
 

Detailed Description

template<typename Scalar_>
class slp::Variable< Scalar_ >

An autodiff variable pointing to an expression node.

Template Parameters
Scalar_Scalar type.

Member Typedef Documentation

◆ Scalar

Scalar type alias.

Constructor & Destructor Documentation

◆ Variable() [1/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( )
default

Constructs a linear Variable with a value of zero.

◆ Variable() [2/8]

template<typename Scalar_ >
constexpr slp::Variable< Scalar_ >::Variable ( std::nullptr_t  )
inlineexplicitconstexpr

Constructs an empty Variable.

◆ Variable() [3/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( Scalar  value)
inline

Constructs a Variable from a scalar type.

Parameters
valueThe value of the Variable.

◆ Variable() [4/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( SleipnirMatrixLike< Scalar > auto  value)
inline

Constructs a Variable from a scalar type.

Parameters
valueThe value of the Variable.

◆ Variable() [5/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( std::floating_point auto  value)
inline

Constructs a Variable from a floating-point type.

Parameters
valueThe value of the Variable.

◆ Variable() [6/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( std::integral auto  value)
inline

Constructs a Variable from an integral type.

Parameters
valueThe value of the Variable.

◆ Variable() [7/8]

template<typename Scalar_ >
slp::Variable< Scalar_ >::Variable ( const detail::ExpressionPtr< Scalar > &  expr)
inlineexplicit

Constructs a Variable pointing to the specified expression.

Parameters
exprThe autodiff variable.

◆ Variable() [8/8]

template<typename Scalar_ >
constexpr slp::Variable< Scalar_ >::Variable ( detail::ExpressionPtr< Scalar > &&  expr)
inlineexplicitconstexpr

Constructs a Variable pointing to the specified expression.

Parameters
exprThe autodiff variable.

Member Function Documentation

◆ operator*=()

template<typename Scalar_ >
Variable< Scalar > & slp::Variable< Scalar_ >::operator*= ( const Variable< Scalar > &  rhs)
inline

Variable-Variable compound multiplication operator.

Parameters
rhsOperator right-hand side.
Returns
Result of multiplication.

◆ operator+=()

template<typename Scalar_ >
Variable< Scalar > & slp::Variable< Scalar_ >::operator+= ( const Variable< Scalar > &  rhs)
inline

Variable-Variable compound addition operator.

Parameters
rhsOperator right-hand side.
Returns
Result of addition.

◆ operator-=()

template<typename Scalar_ >
Variable< Scalar > & slp::Variable< Scalar_ >::operator-= ( const Variable< Scalar > &  rhs)
inline

Variable-Variable compound subtraction operator.

Parameters
rhsOperator right-hand side.
Returns
Result of subtraction.

◆ operator/=()

template<typename Scalar_ >
Variable< Scalar > & slp::Variable< Scalar_ >::operator/= ( const Variable< Scalar > &  rhs)
inline

Variable-Variable compound division operator.

Parameters
rhsOperator right-hand side.
Returns
Result of division.

◆ operator=()

template<typename Scalar_ >
Variable< Scalar > & slp::Variable< Scalar_ >::operator= ( ScalarLike auto  value)
inline

Assignment operator for scalar.

Parameters
valueThe value of the Variable.
Returns
This variable.

◆ set_value()

template<typename Scalar_ >
void slp::Variable< Scalar_ >::set_value ( Scalar  value)
inline

Sets Variable's internal value.

Parameters
valueThe value of the Variable.

◆ type()

template<typename Scalar_ >
ExpressionType slp::Variable< Scalar_ >::type ( ) const
inline

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

Returns
The type of this expression.

◆ value()

template<typename Scalar_ >
Scalar slp::Variable< Scalar_ >::value ( )
inline

Returns the value of this variable.

Returns
The value of this variable.

Friends And Related Symbol Documentation

◆ operator* [1/3]

template<typename Scalar_ >
template<ScalarLike LHS, SleipnirScalarLike< Scalar > RHS>
Variable< Scalar > operator* ( const LHS lhs,
const RHS rhs 
)
friend

Variable-scalar multiplication operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of multiplication.

◆ operator* [2/3]

template<typename Scalar_ >
template<SleipnirScalarLike< Scalar > LHS, ScalarLike RHS>
Variable< Scalar > operator* ( const LHS lhs,
const RHS rhs 
)
friend

Variable-scalar multiplication operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of multiplication.

◆ operator* [3/3]

template<typename Scalar_ >
Variable< Scalar > operator* ( const Variable< Scalar > &  lhs,
const Variable< Scalar > &  rhs 
)
friend

Variable-scalar multiplication operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of multiplication.

◆ operator+ [1/2]

template<typename Scalar_ >
Variable< Scalar > operator+ ( const Variable< Scalar > &  lhs)
friend

Unary plus operator.

Parameters
lhsOperand for unary plus.

◆ operator+ [2/2]

template<typename Scalar_ >
Variable< Scalar > operator+ ( const Variable< Scalar > &  lhs,
const Variable< Scalar > &  rhs 
)
friend

Variable-Variable addition operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of addition.

◆ operator- [1/2]

template<typename Scalar_ >
Variable< Scalar > operator- ( const Variable< Scalar > &  lhs)
friend

Unary minus operator.

Parameters
lhsOperand for unary minus.

◆ operator- [2/2]

template<typename Scalar_ >
Variable< Scalar > operator- ( const Variable< Scalar > &  lhs,
const Variable< Scalar > &  rhs 
)
friend

Variable-Variable subtraction operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of subtraction.

◆ operator/

template<typename Scalar_ >
Variable< Scalar > operator/ ( const Variable< Scalar > &  lhs,
const Variable< Scalar > &  rhs 
)
friend

Variable-Variable division operator.

Parameters
lhsOperator left-hand side.
rhsOperator right-hand side.
Returns
Result of division.

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