WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
expression.hpp File Reference
#include <stdint.h>
#include <algorithm>
#include <array>
#include <cmath>
#include <memory>
#include <numbers>
#include <string_view>
#include <utility>
#include <gch/small_vector.hpp>
#include "sleipnir/autodiff/expression_type.hpp"
#include "sleipnir/util/intrusive_shared_ptr.hpp"
#include "sleipnir/util/pool.hpp"

Go to the source code of this file.

Classes

struct  slp::detail::Expression< Scalar_ >
 An autodiff expression node. More...
struct  slp::detail::BinaryMinusExpression< Scalar, T >
 Derived expression type for binary minus operator. More...
struct  slp::detail::BinaryPlusExpression< Scalar, T >
 Derived expression type for binary plus operator. More...
struct  slp::detail::CbrtExpression< Scalar >
 Derived expression type for cbrt(). More...
struct  slp::detail::ConstantExpression< Scalar >
 Derived expression type for constant. More...
struct  slp::detail::DecisionVariableExpression< Scalar >
 Derived expression type for decision variable. More...
struct  slp::detail::DivExpression< Scalar, T >
 Derived expression type for binary division operator. More...
struct  slp::detail::MultExpression< Scalar, T >
 Derived expression type for binary multiplication operator. More...
struct  slp::detail::UnaryMinusExpression< Scalar, T >
 Derived expression type for unary minus operator. More...
struct  slp::detail::AbsExpression< Scalar >
 Derived expression type for abs(). More...
struct  slp::detail::AcosExpression< Scalar >
 Derived expression type for acos(). More...
struct  slp::detail::AsinExpression< Scalar >
 Derived expression type for asin(). More...
struct  slp::detail::AtanExpression< Scalar >
 Derived expression type for atan(). More...
struct  slp::detail::Atan2Expression< Scalar >
 Derived expression type for atan2(). More...
struct  slp::detail::CosExpression< Scalar >
 Derived expression type for cos(). More...
struct  slp::detail::CoshExpression< Scalar >
 Derived expression type for cosh(). More...
struct  slp::detail::ErfExpression< Scalar >
 Derived expression type for erf(). More...
struct  slp::detail::ExpExpression< Scalar >
 Derived expression type for exp(). More...
struct  slp::detail::HypotExpression< Scalar >
 Derived expression type for hypot(). More...
struct  slp::detail::LogExpression< Scalar >
 Derived expression type for log(). More...
struct  slp::detail::Log10Expression< Scalar >
 Derived expression type for log10(). More...
struct  slp::detail::PowExpression< Scalar, T >
 Derived expression type for pow(). More...
struct  slp::detail::SignExpression< Scalar >
 Derived expression type for sign(). More...
struct  slp::detail::SinExpression< Scalar >
 Derived expression type for sin(). More...
struct  slp::detail::SinhExpression< Scalar >
 Derived expression type for sinh(). More...
struct  slp::detail::SqrtExpression< Scalar >
 Derived expression type for sqrt(). More...
struct  slp::detail::TanExpression< Scalar >
 Derived expression type for tan(). More...
struct  slp::detail::TanhExpression< Scalar >
 Derived expression type for tanh(). More...

Namespaces

namespace  slp
namespace  slp::detail

Typedefs

template<typename Scalar>
using slp::detail::ExpressionPtr = IntrusiveSharedPtr<Expression<Scalar>>
 Typedef for intrusive shared pointer to Expression.

Functions

template<typename Scalar>
constexpr void slp::detail::inc_ref_count (Expression< Scalar > *expr)
 Refcount increment for intrusive shared pointer.
template<typename Scalar>
void slp::detail::dec_ref_count (Expression< Scalar > *expr)
 Refcount decrement for intrusive shared pointer.
template<typename T, typename... Args>
static ExpressionPtr< typename T::Scalar > slp::detail::make_expression_ptr (Args &&... args)
 Creates an intrusive shared pointer to an expression from the global pool allocator.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::constant_ptr (Scalar value)
 Creates an intrusive shared pointer to a constant expression.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::cbrt (const ExpressionPtr< Scalar > &x)
 cbrt() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::exp (const ExpressionPtr< Scalar > &x)
 exp() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::sin (const ExpressionPtr< Scalar > &x)
 sin() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::sinh (const ExpressionPtr< Scalar > &x)
 sinh() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::sqrt (const ExpressionPtr< Scalar > &x)
 sqrt() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::abs (const ExpressionPtr< Scalar > &x)
 abs() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::acos (const ExpressionPtr< Scalar > &x)
 acos() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::asin (const ExpressionPtr< Scalar > &x)
 asin() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::atan (const ExpressionPtr< Scalar > &x)
 atan() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::atan2 (const ExpressionPtr< Scalar > &y, const ExpressionPtr< Scalar > &x)
 atan2() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::cos (const ExpressionPtr< Scalar > &x)
 cos() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::cosh (const ExpressionPtr< Scalar > &x)
 cosh() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::erf (const ExpressionPtr< Scalar > &x)
 erf() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::hypot (const ExpressionPtr< Scalar > &x, const ExpressionPtr< Scalar > &y)
 hypot() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::log (const ExpressionPtr< Scalar > &x)
 log() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::log10 (const ExpressionPtr< Scalar > &x)
 log10() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::pow (const ExpressionPtr< Scalar > &base, const ExpressionPtr< Scalar > &power)
 pow() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::sign (const ExpressionPtr< Scalar > &x)
 sign() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::tan (const ExpressionPtr< Scalar > &x)
 tan() for Expressions.
template<typename Scalar>
ExpressionPtr< Scalar > slp::detail::tanh (const ExpressionPtr< Scalar > &x)
 tanh() for Expressions.

Variables

constexpr bool slp::detail::USE_POOL_ALLOCATOR = true