Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
symbolicdiagnostics.hpp File Reference

Classes

struct  Feel::vf::SymbolicDependencyReport
 Report symbolic dependencies against an explicit candidate set. More...
 
struct  Feel::vf::SymbolicDiagnosticSourceLocation
 Stored source-location information for symbolic diagnostics. More...
 
struct  Feel::vf::SymbolicDifferentiabilityReport
 Report whether an expression can be differentiated with respect to a symbol. More...
 
class  Feel::vf::SymbolicDifferentiationError
 Exception used when symbolic differentiation is known to be unsupported. More...
 

Namespaces

namespace  Feel
 -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*-
 

Enumerations

enum class  Feel::vf::SymbolicDifferentiationDiagnosticKind {
  None , MissingDependencyQuery , MissingDiffOperation , UnsupportedNativeFunctor ,
  UnsupportedPiecewiseFunction , MissingDomainAssumption , Exception
}
 Symbolic differentiation diagnostic category.
 

Functions

template<Feel::VfExpr ExprT>
SymbolicDifferentiabilityReport Feel::vf::describeDifferentiability (ExprT const &expr, std::string const &symbol)
 Describe whether an expression differentiates with respect to a symbol. More...
 
template<Feel::VfExpr ExprT>
SymbolicDependencyReport Feel::vf::describeSymbolicDependencies (ExprT const &expr, std::initializer_list< std::string > symbols)
 Describe symbolic dependencies against an explicit candidate list.
 
template<Feel::VfExpr ExprT>
SymbolicDependencyReport Feel::vf::describeSymbolicDependencies (ExprT const &expr, std::vector< std::string > const &symbols)
 Describe symbolic dependencies against an explicit candidate list.
 
SymbolicDifferentiationError Feel::vf::details::missingDomainAssumptionForPower (std::string const &message, std::source_location const &location=std::source_location::current())
 Build a missing domain-assumption differentiation error.
 
std::string Feel::vf::toString (SymbolicDifferentiationDiagnosticKind kind)
 Convert a symbolic differentiation diagnostic category to text.
 
SymbolicDifferentiationError Feel::vf::details::unsupportedPiecewiseDifferentiation (std::string const &functionKind, std::string const &functionName, std::source_location const &location=std::source_location::current())
 Build an unsupported piecewise or non-smooth function differentiation error.
 
SymbolicDifferentiationError Feel::vf::details::unsupportedSymbolicDifferentiation (std::string const &functorKind, std::string const &functorName, std::source_location const &location=std::source_location::current())
 Build an unsupported native functor symbolic differentiation error.
 

Detailed Description

Function Documentation

◆ describeDifferentiability()

template<Feel::VfExpr ExprT>
SymbolicDifferentiabilityReport Feel::vf::describeDifferentiability ( ExprT const &  expr,
std::string const &  symbol 
)

Describe whether an expression differentiates with respect to a symbol.

The function intentionally attempts the derivative when the public diff<1>(symbol) API is available. This makes runtime unsupported paths, such as native math functors without chain rules, visible to users and tests.