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

Classes

class  serif::utils::dependencies::ComputationGraph< Computations >
 

Namespaces

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

Concepts

concept  serif::utils::dependencies::CompatibleComputations
 A computational graph needs unique producers, valid input ownership, and no cycles.
 
concept  serif::utils::dependencies::IsComputationGraph
 

Functions

template<typename... Computations>
requires CompatibleComputations<Computations...> && (std::constructible_from<std::remove_cvref_t<Computations>, Computations> && ...)
auto serif::utils::dependencies::make_computation_graph (Computations &&... computations)
 Reject duplicate producers and cyclic computational graphs at the declaration site.
 

Variables

template<typename ComputationT, typename ResultKeysT>
constexpr bool serif::utils::dependencies::detail::valid_input_ownership_v
 Owning nodes can retain computed inputs; context resources remain borrowed.
 
template<typename T>
constexpr bool serif::utils::dependencies::is_computation_graph_v = false
 
template<typename... Computations>
constexpr bool serif::utils::dependencies::is_computation_graph_v< ComputationGraph< Computations... > > = true