limes 3.1.0
Composable Calculus Expressions for C++20
Loading...
Searching...
No Matches
antiderivatives.hpp File Reference
#include <type_traits>
#include <cstddef>
#include "nodes/const.hpp"
#include "nodes/var.hpp"
#include "nodes/binary.hpp"
#include "nodes/unary.hpp"
#include "nodes/pow.hpp"
#include "nodes/primitives.hpp"
+ Include dependency graph for antiderivatives.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  limes::expr::has_antiderivative< E, Dim, typename >
 
struct  limes::expr::has_antiderivative< Const< T >, Dim >
 
struct  limes::expr::has_antiderivative< Zero< T >, Dim >
 
struct  limes::expr::has_antiderivative< One< T >, Dim >
 
struct  limes::expr::has_antiderivative< Var< N, T >, Dim >
 
struct  limes::expr::has_antiderivative< Pow< E, N >, Dim, std::enable_if_t< N !=-1 &&has_antiderivative_v< E, Dim > &&std::is_same_v< E, Var< Dim, typename E::value_type > > > >
 
struct  limes::expr::has_antiderivative< UnaryFunc< SinTag, E >, Dim, std::enable_if_t< std::is_same_v< E, Var< Dim, typename E::value_type > > > >
 
struct  limes::expr::has_antiderivative< UnaryFunc< CosTag, E >, Dim, std::enable_if_t< std::is_same_v< E, Var< Dim, typename E::value_type > > > >
 
struct  limes::expr::has_antiderivative< UnaryFunc< ExpTag, E >, Dim, std::enable_if_t< std::is_same_v< E, Var< Dim, typename E::value_type > > > >
 
struct  limes::expr::has_antiderivative< Binary< Add, L, R >, Dim >
 
struct  limes::expr::has_antiderivative< Binary< Sub, L, R >, Dim >
 
struct  limes::expr::has_antiderivative< Binary< Mul, L, R >, Dim, std::enable_if_t<(is_const_expr_v< L >||is_zero_v< L >||is_one_v< L >||(is_expr_node_v< L > &&!std::is_same_v< L, Var< Dim, typename L::value_type > > &&L::arity_v<=Dim)) &&has_antiderivative_v< R, Dim > > >
 
struct  limes::expr::has_antiderivative< Binary< Mul, L, R >, Dim, std::enable_if_t< has_antiderivative_v< L, Dim > &&(is_const_expr_v< R >||is_zero_v< R >||is_one_v< R >) &&!is_const_expr_v< L > &&!is_zero_v< L > &&!is_one_v< L > > >
 
struct  limes::expr::has_antiderivative< Unary< Neg, E >, Dim >
 
struct  limes::expr::antiderivative_impl< Dim, Const< T > >
 
struct  limes::expr::antiderivative_impl< Dim, Zero< T > >
 
struct  limes::expr::antiderivative_impl< Dim, One< T > >
 
struct  limes::expr::antiderivative_impl< Dim, Var< Dim, T > >
 
struct  limes::expr::antiderivative_impl< Dim, Pow< Var< Dim, T >, N > >
 
struct  limes::expr::antiderivative_impl< Dim, UnaryFunc< SinTag, Var< Dim, T > > >
 
struct  limes::expr::antiderivative_impl< Dim, UnaryFunc< CosTag, Var< Dim, T > > >
 
struct  limes::expr::antiderivative_impl< Dim, UnaryFunc< ExpTag, Var< Dim, T > > >
 
struct  limes::expr::antiderivative_impl< Dim, Binary< Add, L, R > >
 
struct  limes::expr::antiderivative_impl< Dim, Binary< Sub, L, R > >
 
struct  limes::expr::antiderivative_impl< Dim, Binary< Mul, Const< T >, R > >
 
struct  limes::expr::antiderivative_impl< Dim, Binary< Mul, L, Const< T > > >
 
struct  limes::expr::antiderivative_impl< Dim, Unary< Neg, E > >
 

Namespaces

namespace  limes
 
namespace  limes::expr
 Expression layer for composable calculus.
 

Functions

template<std::size_t Dim, typename E >
constexpr auto limes::expr::antiderivative (E expr)
 
template<std::size_t Dim, typename E , typename T >
constexpr T limes::expr::definite_integral_symbolic (E expr, T a, T b)
 

Variables

template<typename E , std::size_t Dim>
constexpr bool limes::expr::has_antiderivative_v = has_antiderivative<E, Dim>::value