C++ Library Extensions 2022.12.09
To help learn modern C++ programming
cpg_calculus.hpp File Reference
#include <cpg/cpg_types.hpp>
Include dependency graph for cpg_calculus.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cpg::numerical_analysis::delta< Type >
 

Namespaces

namespace  cpg
 Includes subnamespace conversion.
 
namespace  cpg::numerical_analysis
 
namespace  cpg::numerical_analysis::commands
 

Functions

template<typename Type >
constexpr Type cpg::numerical_analysis::positive_infinity (Type v)
 
template<typename Type >
constexpr Type cpg::numerical_analysis::negative_infinity (Type v)
 
template<typename Type >
constexpr Type cpg::numerical_analysis::positive_approach (Type value)
 
template<typename Type >
constexpr Type cpg::numerical_analysis::negative_approach (Type value)
 
template<typename ValueType , std::size_t N, typename PairType = std::pair<ValueType, ValueType>, typename ReturnType = std::array<PairType, N>>
constexpr ReturnType cpg::numerical_analysis::weights_abscissae () noexcept
 
template<std::size_t WeightCount = 21, typename FunctionType = double(&)(double), typename ValueType = double>
ValueType cpg::numerical_analysis::gaussian_quadrature (FunctionType &&f, ValueType x1, ValueType x2)
 
template<std::size_t WeightCount = 12, typename FuncType = double(&)(double), cpt::arithmetic_c BoundType = double>
BoundType cpg::numerical_analysis::adaptive_gaussian_quadrature (FuncType &&f, BoundType a, BoundType b)
 
template<typename FuncType , cpt::tuple_flat_c TupleType>
requires (cpt::arithmetic_c<FuncType> || requires{ std::apply(func, arg); })
auto cpg::numerical_analysis::smart_apply (FuncType &&func, TupleType arg)
 
template<typename FuncType , cpt::arithmetic_c ArgType>
requires (cpt::arithmetic_c<FuncType> || std::invocable<FuncType, ArgType>)
auto cpg::numerical_analysis::evaluate (FuncType &&f, ArgType arg1)
 
template<typename FuncType , cpt::arithmetic_c ArgType>
requires (cpt::arithmetic_c<FuncType> || std::invocable<FuncType, ArgType, ArgType>)
auto cpg::numerical_analysis::evaluate (FuncType &&f, ArgType arg1, ArgType arg2)
 
template<typename FuncType , cpt::arithmetic_c ArgType>
requires (cpt::arithmetic_c<FuncType> || std::invocable<FuncType, ArgType, ArgType, ArgType>)
auto cpg::numerical_analysis::evaluate (FuncType &&f, ArgType arg1, ArgType arg2, ArgType arg3)
 
template<typename FuncType , cpt::arithmetic_c ArgType>
requires (cpt::arithmetic_c<FuncType> || std::invocable<FuncType, ArgType, ArgType, ArgType, ArgType>)
auto cpg::numerical_analysis::evaluate (FuncType &&f, ArgType arg1, ArgType arg2, ArgType arg3, ArgType arg4)
 
template<typename FuncType1 , typename FuncType2 , cpt::arithmetic_c ArgType>
auto cpg::numerical_analysis::evaluate (std::tuple< FuncType1, FuncType2 > funcs, ArgType arg1)
 
template<typename FuncType1 , typename FuncType2 , cpt::arithmetic_c ArgType>
auto cpg::numerical_analysis::evaluate (std::tuple< FuncType1, FuncType2 > funcs, ArgType arg1, ArgType arg2)
 
template<typename FuncType1 , typename FuncType2 , cpt::arithmetic_c ArgType>
auto cpg::numerical_analysis::evaluate (std::tuple< FuncType1, FuncType2 > funcs, ArgType arg1, ArgType arg2, ArgType arg3)
 
template<typename FuncType1 , typename FuncType2 , cpt::arithmetic_c ArgType>
auto cpg::numerical_analysis::evaluate (std::tuple< FuncType1, FuncType2 > funcs, ArgType arg1, ArgType arg2, ArgType arg3, ArgType arg4)
 
template<bool UseRecursion = true, std::size_t WeightCount = 31, typename FuncType = double(&)(double), typename BoundType = double>
requires (cpt::arithmetic_c<FuncType> || std::invocable<FuncType, BoundType>)
BoundType cpg::numerical_analysis::integral (FuncType &&f, std::tuple< BoundType, BoundType > bound)
 
template<bool UseRecursion = true, std::size_t WeightCount = 31, typename FuncType = double, typename Lower_0 = double, typename Upper_0 = double, typename Lower_1 = double, typename Upper_1 = double, auto First = 0, auto Second = 1>
std::common_type_t< Lower_0, Upper_0 > cpg::numerical_analysis::integral (FuncType &&f, std::tuple< Lower_0, Upper_0 > bound_0, std::tuple< Lower_1, Upper_1 > bound_1, cpt::sequence< First, Second >)
 
template<bool UseRecursion = true, std::size_t WeightCount = 31, typename FuncType = double(&)(double), typename Lower_0 = double, typename Upper_0 = double, typename Lower_1 = double, typename Upper_1 = double, typename Lower_2 = double, typename Upper_2 = double, auto First = 0, auto Second = 1, auto Third = 2>
std::common_type_t< Lower_0, Upper_0 > cpg::numerical_analysis::integral (FuncType &&f, std::tuple< Lower_0, Upper_0 > bound_0, std::tuple< Lower_1, Upper_1 > bound_1, std::tuple< Lower_2, Upper_2 > bound_2, cpt::sequence< First, Second, Third >)
 
template<bool UseRecursion = true, std::size_t WeightCount = 31, typename FuncType = double(&)(double), typename Lower_0 = double, typename Upper_0 = double, typename Lower_1 = double, typename Upper_1 = double, typename Lower_2 = double, typename Upper_2 = double, typename Lower_3 = double, typename Upper_3 = double, auto First = 0, auto Second = 1, auto Third = 2, auto Fourth = 3>
std::common_type_t< Lower_0, Upper_0 > cpg::numerical_analysis::integral (FuncType &&f, std::tuple< Lower_0, Upper_0 > bound_0, std::tuple< Lower_1, Upper_1 > bound_1, std::tuple< Lower_2, Upper_2 > bound_2, std::tuple< Lower_3, Upper_2 > bound_3, cpt::sequence< First, Second, Third, Fourth >)
 
template<auto Order, typename DeltaType >
constexpr auto cpg::numerical_analysis::get_delta (delta< DeltaType > del) noexcept
 
template<typename CountType , typename BoundType >
BoundType cpg::numerical_analysis::compute_delta (CountType count, std::array< BoundType, 2 > &bound) noexcept
 
template<typename Type >
Type cpg::numerical_analysis::adjust_integer (auto arg) noexcept
 
template<typename Type >
Type cpg::numerical_analysis::adjust_zero (auto arg) noexcept
 
template<typename SeqType , typename... SeqTypes>
constexpr auto cpg::numerical_analysis::create_command (SeqType, SeqTypes...) noexcept
 
template<std::size_t Order, typename FuncType , typename ArgType >
auto cpg::numerical_analysis::nine_point_stencil (FuncType &&f, ArgType x) noexcept
 
template<std::size_t Order, typename FuncType , typename ArgType >
auto cpg::numerical_analysis::seven_point_stencil (FuncType &&f, ArgType x) noexcept
 
template<std::size_t Order, typename FunctionType , typename ArgType >
ArgType cpg::numerical_analysis::five_point_stencil (FunctionType &&f, ArgType x) noexcept
 
template<auto VarIndex, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::fix_variables_other_than_VarIndex_ed (FuncType &&func, ArgTypes... args) noexcept
 
template<auto VarIndex, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::fix_variables_other_than_VarIndex_ed (FuncType &&func, std::tuple< ArgTypes... > args) noexcept
 
template<auto VarIndex, typename FuncType , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::fix_variables_other_than_VarIndex_ed (FuncType &&func, std::array< ArgType, N > args) noexcept
 
template<auto VarIndex, auto Order, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::sequence< VarIndex, Order >, FuncType &&func, ArgTypes... args) noexcept
 
template<auto VarIndex, auto Order, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::sequence< VarIndex, Order >, FuncType &&func, std::tuple< ArgTypes... > args) noexcept
 
template<auto VarIndex, auto Order, typename FuncType , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::partial_derivative (cpt::sequence< VarIndex, Order >, FuncType &&func, std::array< ArgType, N > args) noexcept
 
template<typename VarOdr , typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr >, FuncType &&func, ArgTypes... args) noexcept
 
template<typename VarOdr , typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr > cmd, FuncType &&func, std::tuple< ArgTypes... > const &args) noexcept
 
template<typename VarOdr , typename FuncType , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr > cmd, FuncType &&func, std::array< ArgType, N > const &args) noexcept
 
template<typename VarOdr1 , typename VarOdr2 , typename... VarOdrs, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr1, VarOdr2, VarOdrs... >, FuncType &&func, ArgTypes... args) noexcept
 
template<typename VarOdr1 , typename VarOdr2 , typename... VarOdrs, typename FuncType , cpt::arithmetic_c... ArgTypes>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr1, VarOdr2, VarOdrs... > cmd, FuncType &&func, std::tuple< ArgTypes... > const &args) noexcept
 
template<typename VarOdr1 , typename VarOdr2 , typename... VarOdrs, typename FuncType , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::partial_derivative (cpt::type_container< VarOdr1, VarOdr2, VarOdrs... > cmd, FuncType &&func, std::array< ArgType, N > const &args) noexcept
 
template<typename FuncType , typename... VariableTypes, typename ParamType >
auto cpg::numerical_analysis::directional_derivative (FuncType &&f, std::tuple< VariableTypes... > const &vars, ParamType param)
 
template<typename... CmdTypes, typename FuncType , typename... VariableTypes, typename... ParamTypes>
auto cpg::numerical_analysis::parametric_derivative (cpt::type_container< CmdTypes... > cmd, FuncType &&f, std::tuple< VariableTypes... > const &vars, ParamTypes... ps)
 
template<typename... CmdTypes, typename FuncType , typename... VariableTypes, typename... ParamTypes>
auto cpg::numerical_analysis::parametric_derivative (cpt::type_container< CmdTypes... > cmd, FuncType &&f, std::tuple< VariableTypes... > const &vars, std::tuple< ParamTypes... > ps)
 
template<typename... CmdTypes, typename FuncType , typename... VariableTypes, typename ParamType , std::size_t N>
auto cpg::numerical_analysis::parametric_derivative (cpt::type_container< CmdTypes... > cmd, FuncType &&f, std::tuple< VariableTypes... > const &vars, std::array< ParamType, N > ps)
 
template<typename FuncType , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncType, ArgTypes...> )
auto cpg::numerical_analysis::gradient (FuncType &&function, ArgTypes... args) noexcept
 
template<typename FuncType , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncType, ArgTypes...> )
auto cpg::numerical_analysis::gradient (FuncType &&function, const std::tuple< ArgTypes... > &args) noexcept
 
template<typename FuncType , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::gradient (FuncType &&function, const std::array< ArgType, N > &args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncTypeX, ArgTypes...> && std::is_invocable_v<FuncTypeY, ArgTypes...> && std::is_invocable_v<FuncTypeZ, ArgTypes...> )
auto cpg::numerical_analysis::curl (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, ArgTypes... args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncTypeX, ArgTypes...> && std::is_invocable_v<FuncTypeY, ArgTypes...> && std::is_invocable_v<FuncTypeZ, ArgTypes...> )
auto cpg::numerical_analysis::curl (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, const std::tuple< ArgTypes... > &args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::curl (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, const std::array< ArgType, N > &args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncTypeX, ArgTypes...> && std::is_invocable_v<FuncTypeY, ArgTypes...> && std::is_invocable_v<FuncTypeZ, ArgTypes...> )
auto cpg::numerical_analysis::divergence (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, ArgTypes... args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c... ArgTypes>
requires ( std::is_invocable_v<FuncTypeX, ArgTypes...> && std::is_invocable_v<FuncTypeY, ArgTypes...> && std::is_invocable_v<FuncTypeZ, ArgTypes...> )
auto cpg::numerical_analysis::divergence (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, const std::tuple< ArgTypes... > &args) noexcept
 
template<typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , cpt::arithmetic_c ArgType, std::size_t N>
auto cpg::numerical_analysis::divergence (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, const std::array< ArgType, N > &args) noexcept
 
template<typename FuncType , typename BoundType >
requires requires { func(BoundType{}); }
auto cpg::numerical_analysis::evaluate (FuncType &&func, std::size_t N, std::array< BoundType, 2 > bound)
 
template<std::size_t VarIndex, typename FuncType , typename BoundType , typename... ArgTypes>
auto cpg::numerical_analysis::evaluate (FuncType &&func, std::size_t N, std::array< BoundType, 2 > bound, ArgTypes... args)
 
template<auto VarIndex, auto DerivativeOrder, typename FuncType , typename BoundType >
requires requires { func(BoundType{}); }
auto cpg::numerical_analysis::differentiate (cpt::sequence< VarIndex, DerivativeOrder >, FuncType &&func, std::size_t N, std::array< BoundType, 2 > bound)
 
template<auto VarIndex, typename IndexType , typename... IndexTypes, typename FuncType , typename BoundType >
requires requires { func(args...); }
auto cpg::numerical_analysis::differentiate (cpt::type_container< IndexType, IndexTypes... > command, FuncType &&func, std::size_t N, std::array< BoundType, 2 > bound, auto... args)
 
template<std::size_t CountX, std::size_t CountY, std::size_t CountZ, typename FuncType , typename BoundType >
requires requires { func( BoundType{}, BoundType{}, BoundType{}); }
auto cpg::numerical_analysis::gradients (FuncType &&func, std::array< BoundType, 2 > bound_x, std::array< BoundType, 2 > bound_y, std::array< BoundType, 2 > bound_z)
 
template<std::size_t CountX, std::size_t CountY, std::size_t CountZ, typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , typename BoundType >
requires requires { func_x( BoundType{}, BoundType{}, BoundType{}); func_y( BoundType{}, BoundType{}, BoundType{}); func_z( BoundType{}, BoundType{}, BoundType{}); }
auto cpg::numerical_analysis::curls (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, std::array< BoundType, 2 > bound_x, std::array< BoundType, 2 > bound_y, std::array< BoundType, 2 > bound_z)
 
template<std::size_t CountX, std::size_t CountY, std::size_t CountZ, typename FuncTypeX , typename FuncTypeY , typename FuncTypeZ , typename BoundType >
requires requires { func_x( BoundType{}, BoundType{}, BoundType{}); func_y( BoundType{}, BoundType{}, BoundType{}); func_z( BoundType{}, BoundType{}, BoundType{}); }
auto cpg::numerical_analysis::divs (FuncTypeX &&func_x, FuncTypeY &&func_y, FuncTypeZ &&func_z, std::array< BoundType, 2 > bound_x, std::array< BoundType, 2 > bound_y, std::array< BoundType, 2 > bound_z)
 
template<typename FuncType , cpt::arithmetic_c BoundType>
BoundType cpg::numerical_analysis::simpson_rule (FuncType &&f, BoundType a, BoundType b) noexcept
 
template<typename FuncType , cpt::arithmetic_c BoundType>
BoundType cpg::numerical_analysis::adaptive_simpson_quadrature (FuncType &&f, BoundType a, BoundType b)
 

Variables

template<typename Type >
constexpr Type cpg::numerical_analysis::positive_zero = std::numeric_limits<Type>::epsilon()
 
template<typename Type >
constexpr Type cpg::numerical_analysis::negative_zero = -std::numeric_limits<Type>::epsilon()
 
constexpr auto cpg::numerical_analysis::commands::iv_x = 0
 
constexpr auto cpg::numerical_analysis::commands::iv_y = 1
 
constexpr auto cpg::numerical_analysis::commands::iv_z = 2
 
constexpr auto cpg::numerical_analysis::commands::dx_1 = cpt::sequence<0, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_2 = cpt::sequence<0, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_3 = cpt::sequence<0, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_4 = cpt::sequence<0, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_5 = cpt::sequence<0, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_6 = cpt::sequence<0, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_7 = cpt::sequence<0, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_8 = cpt::sequence<0, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_9 = cpt::sequence<0, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_1 = cpt::sequence<1, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_2 = cpt::sequence<1, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_3 = cpt::sequence<1, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_4 = cpt::sequence<1, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_5 = cpt::sequence<1, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_6 = cpt::sequence<1, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_7 = cpt::sequence<1, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_8 = cpt::sequence<1, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_9 = cpt::sequence<1, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_1 = cpt::sequence<2, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_2 = cpt::sequence<2, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_3 = cpt::sequence<2, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_4 = cpt::sequence<2, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_5 = cpt::sequence<2, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_6 = cpt::sequence<2, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_7 = cpt::sequence<2, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_8 = cpt::sequence<2, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_9 = cpt::sequence<2, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_1 = cpt::sequence<0, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_2 = cpt::sequence<0, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_3 = cpt::sequence<0, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_4 = cpt::sequence<0, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_5 = cpt::sequence<0, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_6 = cpt::sequence<0, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_7 = cpt::sequence<0, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_8 = cpt::sequence<0, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_0_9 = cpt::sequence<0, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_1 = cpt::sequence<1, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_2 = cpt::sequence<1, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_3 = cpt::sequence<1, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_4 = cpt::sequence<1, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_5 = cpt::sequence<1, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_6 = cpt::sequence<1, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_7 = cpt::sequence<1, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_8 = cpt::sequence<1, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_1_9 = cpt::sequence<1, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_1 = cpt::sequence<2, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_2 = cpt::sequence<2, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_3 = cpt::sequence<2, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_4 = cpt::sequence<2, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_5 = cpt::sequence<2, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_6 = cpt::sequence<2, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_7 = cpt::sequence<2, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_8 = cpt::sequence<2, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_2_9 = cpt::sequence<2, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_1 = cpt::sequence<3, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_2 = cpt::sequence<3, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_3 = cpt::sequence<3, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_4 = cpt::sequence<3, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_5 = cpt::sequence<3, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_6 = cpt::sequence<3, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_7 = cpt::sequence<3, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_8 = cpt::sequence<3, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_3_9 = cpt::sequence<3, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_1 = cpt::sequence<4, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_2 = cpt::sequence<4, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_3 = cpt::sequence<4, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_4 = cpt::sequence<4, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_5 = cpt::sequence<4, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_6 = cpt::sequence<4, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_7 = cpt::sequence<4, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_8 = cpt::sequence<4, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_4_9 = cpt::sequence<4, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_1 = cpt::sequence<5, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_2 = cpt::sequence<5, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_3 = cpt::sequence<5, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_4 = cpt::sequence<5, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_5 = cpt::sequence<5, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_6 = cpt::sequence<5, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_7 = cpt::sequence<5, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_8 = cpt::sequence<5, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_5_9 = cpt::sequence<5, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_1 = cpt::sequence<6, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_2 = cpt::sequence<6, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_3 = cpt::sequence<6, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_4 = cpt::sequence<6, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_5 = cpt::sequence<6, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_6 = cpt::sequence<6, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_7 = cpt::sequence<6, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_8 = cpt::sequence<6, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_6_9 = cpt::sequence<6, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_1 = cpt::sequence<7, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_2 = cpt::sequence<7, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_3 = cpt::sequence<7, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_4 = cpt::sequence<7, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_5 = cpt::sequence<7, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_6 = cpt::sequence<7, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_7 = cpt::sequence<7, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_8 = cpt::sequence<7, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_7_9 = cpt::sequence<7, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_1 = cpt::sequence<8, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_2 = cpt::sequence<8, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_3 = cpt::sequence<8, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_4 = cpt::sequence<8, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_5 = cpt::sequence<8, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_6 = cpt::sequence<8, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_7 = cpt::sequence<8, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_8 = cpt::sequence<8, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_8_9 = cpt::sequence<8, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_1 = cpt::sequence<9, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_2 = cpt::sequence<9, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_3 = cpt::sequence<9, 3>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_4 = cpt::sequence<9, 4>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_5 = cpt::sequence<9, 5>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_6 = cpt::sequence<9, 6>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_7 = cpt::sequence<9, 7>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_8 = cpt::sequence<9, 8>{}
 
constexpr auto cpg::numerical_analysis::commands::d_9_9 = cpt::sequence<9, 9>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_dy = cpt::sequence<1, 0>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_dx = cpt::sequence<0, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_dy_dz = cpt::sequence<2, 1, 0>{}
 
constexpr auto cpg::numerical_analysis::commands::dx_dz_dy = cpt::sequence<1, 2, 0>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_dx_dz = cpt::sequence<2, 0, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dy_dz_dx = cpt::sequence<0, 2, 1>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_dx_dy = cpt::sequence<1, 0, 2>{}
 
constexpr auto cpg::numerical_analysis::commands::dz_dy_dx = cpt::sequence<0, 1, 2>{}