SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::utils::dependencies::Plan< Computations > Class Template Reference

#include <plan.hpp>

Public Types

using Results = Declaration<typename Computations::Key...>
 
using Inputs = CombinedDeclaration<typename Computations::Inputs...>
 
using Graph = detail::Graph<Computations...>
 
template<std::size_t Index>
using ComputationAt = std::tuple_element_t<Index, std::tuple<Computations...>>
 

Public Member Functions

 Plan (Computations... computations)
 Accept computations in any order; the graph determines their evaluation order.
 
template<std::size_t Index>
requires (Index < size)
const auto & computation () const
 Read a callable without permitting its stored configuration to change between preparations.
 

Static Public Member Functions

template<typename KeyT>
requires detail::contains_key_v<KeyT, Results>
static consteval std::size_t index ()
 Convert a known result key to its stable position in the plan.
 

Static Public Attributes

static constexpr std::size_t size = sizeof...(Computations)
 

Private Attributes

std::tuple< Computations... > m_computations
 

Member Typedef Documentation

◆ ComputationAt

template<IsComputation... Computations>
template<std::size_t Index>
using serif::utils::dependencies::Plan< Computations >::ComputationAt = std::tuple_element_t<Index, std::tuple<Computations...>>

◆ Graph

template<IsComputation... Computations>
using serif::utils::dependencies::Plan< Computations >::Graph = detail::Graph<Computations...>

◆ Inputs

template<IsComputation... Computations>
using serif::utils::dependencies::Plan< Computations >::Inputs = CombinedDeclaration<typename Computations::Inputs...>

◆ Results

template<IsComputation... Computations>
using serif::utils::dependencies::Plan< Computations >::Results = Declaration<typename Computations::Key...>

Constructor & Destructor Documentation

◆ Plan()

template<IsComputation... Computations>
serif::utils::dependencies::Plan< Computations >::Plan ( Computations... computations)
inlineexplicit

Accept computations in any order; the graph determines their evaluation order.

Member Function Documentation

◆ computation()

template<IsComputation... Computations>
template<std::size_t Index>
requires (Index < size)
const auto & serif::utils::dependencies::Plan< Computations >::computation ( ) const
inlinenodiscard

Read a callable without permitting its stored configuration to change between preparations.

◆ index()

template<IsComputation... Computations>
template<typename KeyT>
requires detail::contains_key_v<KeyT, Results>
static consteval std::size_t serif::utils::dependencies::Plan< Computations >::index ( )
inlinestaticnodiscardconsteval

Convert a known result key to its stable position in the plan.

Member Data Documentation

◆ m_computations

template<IsComputation... Computations>
std::tuple<Computations...> serif::utils::dependencies::Plan< Computations >::m_computations
private

◆ size

template<IsComputation... Computations>
std::size_t serif::utils::dependencies::Plan< Computations >::size = sizeof...(Computations)
staticconstexpr

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