SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
incremental_computation.hpp File Reference
#include <array>
#include <concepts>
#include <functional>
#include <type_traits>
#include <utility>
#include "serif/utils/dependencies/computation.hpp"
#include "serif/utils/dependencies/detail/result.hpp"
#include "serif/utils/dependencies/detail/type_lists.hpp"
Include dependency graph for incremental_computation.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::utils::dependencies::ComputationUpdate< InputsT, ValueT >
 
class  serif::utils::dependencies::IncrementalComputation< KeyT, ValueT, InputsT, FunctionT >
 A calculation may reuse unchanged pieces of its previous immutable result. More...
 

Namespaces

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

Functions

template<typename KeyT, typename ValueT, IsKeyList InputsT, typename FunctionT>
requires std::is_object_v<ValueT> && std::move_constructible<ValueT> && std::constructible_from<std::decay_t<FunctionT>, FunctionT>
auto serif::utils::dependencies::make_incremental_computation (FunctionT &&function)
 Declare the result type explicitly so an incremental callable can inspect its previous value.
 

Variables

template<typename KeyT, typename ValueT, typename InputsT, typename FunctionT>
constexpr bool serif::utils::dependencies::is_computation_v< IncrementalComputation< KeyT, ValueT, InputsT, FunctionT > > = true