version 0.4.1
Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... > Class Template Reference

DifferentiableFunction is a class taking several callables. The function are assumed to be derivatives of each other w.r.t. the argument. More...

#include <ikarus/utils/differentiablefunction.hh>

Inheritance diagram for Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >:
[legend]

Public Types

using Domain = std::remove_cvref_t< D >
 
using Traits = DerivativeTraitsFromCallables< Impl::Functions< F, FF... >, D >
 
using Derivative = DifferentiableFunction< typename Traits::template Range< 1 >(D), DerivativeTraits, FF... >
 

Public Member Functions

template<class... FFF>
 DifferentiableFunction (FFF &&... f)
 
Range operator() (const D &x) const
 

Static Public Attributes

static constexpr auto nDerivatives = sizeof...(FF)
 

Detailed Description

template<class Range, class D, template< class > class DerivativeTraits, class F, class... FF>
class Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >
Template Parameters
DerivativeArgsThe types of derivative arguments.
ParameterArgsThe types of parameter arguments.

Member Typedef Documentation

◆ Derivative

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
using Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::Derivative = DifferentiableFunction<typename Traits::template Range<1>(D), DerivativeTraits, FF...>

◆ Domain

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
using Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::Domain = std::remove_cvref_t<D>

◆ Traits

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
using Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::Traits = DerivativeTraitsFromCallables<Impl::Functions<F, FF...>, D>

Constructor & Destructor Documentation

◆ DifferentiableFunction()

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
template<class... FFF>
Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::DifferentiableFunction ( FFF &&...  f)
inline

Member Function Documentation

◆ operator()()

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
Range Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::operator() ( const D &  x) const
inline

Member Data Documentation

◆ nDerivatives

template<class Range , class D , template< class > class DerivativeTraits, class F , class... FF>
constexpr auto Ikarus::DifferentiableFunction< Range(D), DerivativeTraits, F, FF... >::nDerivatives = sizeof...(FF)
staticconstexpr

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