limes 3.1.0
Composable Calculus Expressions for C++20
Loading...
Searching...
No Matches
derivative_builder.hpp File Reference

Fluent builder pattern for symbolic differentiation. More...

#include <tuple>
#include <utility>
#include "nodes/binary.hpp"
+ Include dependency graph for derivative_builder.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  limes::expr::DerivativeBuilder< E >
 Fluent builder for computing symbolic derivatives. More...
 
struct  limes::expr::is_derivative_builder< T >
 
struct  limes::expr::is_derivative_builder< DerivativeBuilder< E > >
 

Namespaces

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

Functions

template<typename E >
requires (is_expr_node_v<E> && !is_derivative_builder_v<E>)
constexpr auto limes::expr::derivative (E expr)
 Create a DerivativeBuilder for fluent derivative computation.
 

Variables

template<typename T >
constexpr bool limes::expr::is_derivative_builder_v = is_derivative_builder<T>::value
 

Detailed Description

Fluent builder pattern for symbolic differentiation.

This module provides the DerivativeBuilder class and derivative() function for computing symbolic derivatives using a fluent API.

Usage

using namespace limes::expr;
auto x = arg<0>;
auto y = arg<1>;
auto f = sin(x*x) + cos(y);
// Single partial derivative
auto df_dx = derivative(f).wrt<0>(); // ∂f/∂x = 2x·cos(x²)
// Mixed partial derivative
auto d2f = derivative(f).wrt<0>().wrt<1>(); // ∂²f/∂x∂y
// Convenience for second-order
auto d2f_dx2 = derivative(f).wrt<0, 0>(); // ∂²f/∂x²
// Gradient (all first partials)
auto [fx, fy] = derivative(f).gradient();
Expression layer for composable calculus.
Definition analysis.hpp:7
See also
derivative() Entry point function
DerivativeBuilder Builder class

Definition in file derivative_builder.hpp.