![]() |
WPILibC++ 2027.0.0-alpha-4
|
#include <algorithm>#include <concepts>#include <initializer_list>#include <source_location>#include <utility>#include <vector>#include <Eigen/Core>#include <gch/small_vector.hpp>#include "sleipnir/autodiff/expression.hpp"#include "sleipnir/autodiff/expression_graph.hpp"#include "sleipnir/autodiff/sleipnir_base.hpp"#include "sleipnir/util/assert.hpp"#include "sleipnir/util/concepts.hpp"#include "sleipnir/util/print.hpp"Go to the source code of this file.
Classes | |
| class | slp::Variable< Scalar_ > |
| An autodiff variable pointing to an expression node. More... | |
| struct | slp::EqualityConstraints< Scalar > |
| A vector of equality constraints of the form cₑ(x) = 0. More... | |
| struct | slp::InequalityConstraints< Scalar > |
| A vector of inequality constraints of the form cᵢ(x) ≥ 0. More... | |
| struct | Eigen::NumTraits< slp::Variable< Scalar > > |
| NumTraits specialization that allows instantiating Eigen types with Variable. More... | |
Namespaces | |
| namespace | slp |
| namespace | slp::detail |
| namespace | Eigen |
Functions | |
| template<template< typename > typename T, typename Scalar> requires SleipnirMatrixLike<T<Scalar>, Scalar> | |
| slp::Variable (T< Scalar >) -> Variable< Scalar > | |
| template<std::floating_point T> | |
| slp::Variable (T) -> Variable< T > | |
| template<std::integral T> | |
| slp::Variable (T) -> Variable< T > | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::abs (const Variable< Scalar > &x) |
| abs() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::acos (const Variable< Scalar > &x) |
| acos() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::asin (const Variable< Scalar > &x) |
| asin() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::atan (const Variable< Scalar > &x) |
| atan() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::atan2 (const ScalarLike auto &y, const Variable< Scalar > &x) |
| atan2() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::atan2 (const Variable< Scalar > &y, const ScalarLike auto &x) |
| atan2() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::atan2 (const Variable< Scalar > &y, const Variable< Scalar > &x) |
| atan2() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::cbrt (const Variable< Scalar > &x) |
| cbrt() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::cos (const Variable< Scalar > &x) |
| cos() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::cosh (const Variable< Scalar > &x) |
| cosh() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::erf (const Variable< Scalar > &x) |
| erf() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::exp (const Variable< Scalar > &x) |
| exp() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::hypot (const ScalarLike auto &x, const Variable< Scalar > &y) |
| hypot() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::hypot (const Variable< Scalar > &x, const ScalarLike auto &y) |
| hypot() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::hypot (const Variable< Scalar > &x, const Variable< Scalar > &y) |
| hypot() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::log (const Variable< Scalar > &x) |
| log() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::log10 (const Variable< Scalar > &x) |
| log10() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::pow (const ScalarLike auto &base, const Variable< Scalar > &power) |
| pow() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::pow (const Variable< Scalar > &base, const ScalarLike auto &power) |
| pow() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::pow (const Variable< Scalar > &base, const Variable< Scalar > &power) |
| pow() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::sign (const Variable< Scalar > &x) |
| sign() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::sin (const Variable< Scalar > &x) |
| sin() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::sinh (const Variable< Scalar > &x) |
| sinh() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::sqrt (const Variable< Scalar > &x) |
| sqrt() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::tan (const Variable< Scalar > &x) |
| tan() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::tanh (const Variable< Scalar > &x) |
| tanh() for Variables. | |
| template<typename Scalar> | |
| Variable< Scalar > | slp::hypot (const Variable< Scalar > &x, const Variable< Scalar > &y, const Variable< Scalar > &z) |
| hypot() for Variables. | |
| template<typename Scalar, ScalarLike LHS, ScalarLike RHS> requires SleipnirScalarLike<LHS, Scalar> || SleipnirScalarLike<RHS, Scalar> | |
| auto | slp::make_constraints (LHS &&lhs, RHS &&rhs) |
| template<typename Scalar, ScalarLike LHS, MatrixLike RHS> requires SleipnirScalarLike<LHS, Scalar> || SleipnirMatrixLike<RHS, Scalar> | |
| auto | slp::make_constraints (LHS &&lhs, RHS &&rhs) |
| template<typename Scalar, MatrixLike LHS, ScalarLike RHS> requires SleipnirMatrixLike<LHS, Scalar> || SleipnirScalarLike<RHS, Scalar> | |
| auto | slp::make_constraints (LHS &&lhs, RHS &&rhs) |
| template<typename Scalar, MatrixLike LHS, MatrixLike RHS> requires SleipnirMatrixLike<LHS, Scalar> || SleipnirMatrixLike<RHS, Scalar> | |
| auto | slp::make_constraints (LHS &&lhs, RHS &&rhs) |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && SleipnirType<LHS> && (ScalarLike<RHS> || MatrixLike<RHS>) && (!SleipnirType<RHS>) | |
| auto | slp::operator== (LHS &&lhs, RHS &&rhs) |
| Equality operator that returns an equality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && (!SleipnirType<LHS>) && (ScalarLike<RHS> || MatrixLike<RHS>) && SleipnirType<RHS> | |
| auto | slp::operator== (LHS &&lhs, RHS &&rhs) |
| Equality operator that returns an equality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && SleipnirType<LHS> && (ScalarLike<RHS> || MatrixLike<RHS>) && SleipnirType<RHS> | |
| auto | slp::operator== (LHS &&lhs, RHS &&rhs) |
| Equality operator that returns an equality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && (ScalarLike<RHS> || MatrixLike<RHS>) && (SleipnirType<LHS> || SleipnirType<RHS>) | |
| auto | slp::operator< (LHS &&lhs, RHS &&rhs) |
| Less-than comparison operator that returns an inequality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && (ScalarLike<RHS> || MatrixLike<RHS>) && (SleipnirType<LHS> || SleipnirType<RHS>) | |
| auto | slp::operator<= (LHS &&lhs, RHS &&rhs) |
| Less-than-or-equal-to comparison operator that returns an inequality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && (ScalarLike<RHS> || MatrixLike<RHS>) && (SleipnirType<LHS> || SleipnirType<RHS>) | |
| auto | slp::operator> (LHS &&lhs, RHS &&rhs) |
| Greater-than comparison operator that returns an inequality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && SleipnirType<LHS> && (ScalarLike<RHS> || MatrixLike<RHS>) && (!SleipnirType<RHS>) | |
| auto | slp::operator>= (LHS &&lhs, RHS &&rhs) |
| Greater-than-or-equal-to comparison operator that returns an inequality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && (!SleipnirType<LHS>) && (ScalarLike<RHS> || MatrixLike<RHS>) && SleipnirType<RHS> | |
| auto | slp::operator>= (LHS &&lhs, RHS &&rhs) |
| Greater-than-or-equal-to comparison operator that returns an inequality constraint for two Variables. | |
| template<typename LHS, typename RHS> requires (ScalarLike<LHS> || MatrixLike<LHS>) && SleipnirType<LHS> && (ScalarLike<RHS> || MatrixLike<RHS>) && SleipnirType<RHS> | |
| auto | slp::operator>= (LHS &&lhs, RHS &&rhs) |
| Greater-than-or-equal-to comparison operator that returns an inequality constraint for two Variables. | |
| template<typename L, typename X, typename U> requires (ScalarLike<L> || MatrixLike<L>) && SleipnirType<X> && (ScalarLike<U> || MatrixLike<U>) | |
| auto | slp::bounds (L &&l, X &&x, U &&u) |
| Helper function for creating bound constraints. | |