SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
contributions.hpp File Reference
#include <cstddef>
#include <memory>
#include <type_traits>
#include <utility>
#include <tuple>
#include "serif/equations/concepts.hpp"
Include dependency graph for contributions.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::operators::ContributionBinding< EquationT >
 Retain one leaf equation and the constant coefficient of its arithmetic expression. More...
 
struct  serif::operators::detail::ContributionChildren< EquationT >
 

Namespaces

namespace  serif
 
namespace  serif::operators
 
namespace  serif::operators::detail
 

Functions

template<typename EquationT>
auto serif::operators::detail::bind_contributions (std::shared_ptr< const EquationT > equation, double coefficient)
 Flatten equation arithmetic while preserving every generated tuple and borrowed parent.
 
template<typename EquationT, typename FunctionT>
void serif::operators::detail::visit_contributions (const EquationT &equation, FunctionT &function, std::size_t &index, double coefficient)
 Visit arithmetic leaves without retaining them beyond the supplied callback.
 
template<equations::Equation EquationT>
auto serif::operators::bind_contributions (std::shared_ptr< const EquationT > equation)
 Give each retained leaf a compile-time tuple position for independently cached contribution results.
 
template<equations::Equation EquationT, typename FunctionT>
void serif::operators::for_each_contribution (const EquationT &equation, FunctionT &&function)