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

Classes

class  serif::utils::dependencies::ComputationCache< GraphT, ContextT, ErrorT, ObserversT >
 Execute a computational graph on demand, publishing immutable results only after the entire request succeeds. More...
 

Namespaces

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

Functions

template<typename ErrorT = std::string, IsComputationGraph GraphT, IsDependencyContext ContextT, typename ObserversT = Observers<>>
requires CanPrepare<GraphT, ContextT, ErrorT> && ObserversFor<ObserversT, GraphT, ContextT> && std::constructible_from<std::remove_cvref_t<GraphT>, GraphT> && std::constructible_from<std::remove_cvref_t<ObserversT>, ObserversT>
auto serif::utils::dependencies::make_computation_cache (GraphT &&graph, const ContextT &, ObserversT &&observers=ObserversT{})
 Fix the graph's source types without retaining the supplied context or evaluating any computations.
 
template<typename ErrorT = std::string, IsDependencyContext ContextT, typename... Computations>
requires CompatibleComputations<Computations...> && (std::constructible_from<std::remove_cvref_t<Computations>, Computations> && ...) && CanPrepare<ComputationGraph<std::remove_cvref_t<Computations>...>, ContextT, ErrorT>
auto serif::utils::dependencies::make_computation_cache (const ContextT &context, Computations &&... computations)
 Build a checked graph and an empty cache directly from named computations.