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

Classes

class  serif::utils::dependencies::OwnedComputation< KeyT, ComputationT >
 
class  serif::utils::dependencies::ComputationStore< EntryTs >
 Own independent computation caches under compile-time role keys; this store does not connect their graphs. More...
 

Namespaces

namespace  serif
 
namespace  serif::utils
 
namespace  serif::utils::dependencies
 

Concepts

concept  serif::utils::dependencies::IsOwnedComputation
 

Functions

template<typename KeyT, typename ComputationT>
requires std::constructible_from<std::remove_cvref_t<ComputationT>, ComputationT>
auto serif::utils::dependencies::own_computation (ComputationT &&computation)
 Name an owned computation; rvalues transfer ownership and copyable lvalues are copied.
 
template<typename... EntryTs>
requires (IsOwnedComputation<EntryTs> && ...) && misc::traits::all_unique_types_v<typename std::remove_cvref_t<EntryTs>::Key...> && (std::constructible_from<std::remove_cvref_t<EntryTs>, EntryTs> && ...)
auto serif::utils::dependencies::make_computation_store (EntryTs &&... entries)
 Construct the model's computation owner, rejecting duplicate role keys before execution.
 

Variables

template<typename T>
constexpr bool serif::utils::dependencies::is_owned_computation_v = false
 
template<typename KeyT, typename ComputationT>
constexpr bool serif::utils::dependencies::is_owned_computation_v< OwnedComputation< KeyT, ComputationT > > = true