337 lines
30 KiB
XML
337 lines
30 KiB
XML
|
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||
|
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
|
||
|
|
<compounddef id="graph_8hpp" kind="file" language="C++">
|
||
|
|
<compoundname>graph.hpp</compoundname>
|
||
|
|
<includes local="no">array</includes>
|
||
|
|
<includes local="no">cstddef</includes>
|
||
|
|
<includes local="no">utility</includes>
|
||
|
|
<includes refid="type__lists_8hpp" local="yes">serif/utils/dependencies/detail/type_lists.hpp</includes>
|
||
|
|
<includedby refid="computation__graph_8hpp" local="yes">src/include/serif/utils/dependencies/computation_graph.hpp</includedby>
|
||
|
|
<incdepgraph>
|
||
|
|
<node id="8">
|
||
|
|
<label>serif/utils/dependencies/binding.hpp</label>
|
||
|
|
<link refid="binding_8hpp"/>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="9" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="1">
|
||
|
|
<label>src/include/serif/utils/dependencies/detail/graph.hpp</label>
|
||
|
|
<link refid="graph_8hpp"/>
|
||
|
|
<childnode refid="2" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="3" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="4" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="5" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="5">
|
||
|
|
<label>serif/utils/dependencies/detail/type_lists.hpp</label>
|
||
|
|
<link refid="type__lists_8hpp"/>
|
||
|
|
<childnode refid="2" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="3" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="7" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="7">
|
||
|
|
<label>serif/utils/dependencies/key_list.hpp</label>
|
||
|
|
<link refid="key__list_8hpp"/>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="8" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="9" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="11" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="10">
|
||
|
|
<label>serif/utils/misc/std_helper/cleaning.hpp</label>
|
||
|
|
<link refid="cleaning_8hpp"/>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="9">
|
||
|
|
<label>serif/utils/misc/traits/type_uniqueness.hpp</label>
|
||
|
|
<link refid="traits_2type__uniqueness_8hpp"/>
|
||
|
|
<childnode refid="10" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="11">
|
||
|
|
<label>serif/utils/types/type_list.hpp</label>
|
||
|
|
<link refid="type__list_8hpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="2">
|
||
|
|
<label>array</label>
|
||
|
|
</node>
|
||
|
|
<node id="3">
|
||
|
|
<label>cstddef</label>
|
||
|
|
</node>
|
||
|
|
<node id="6">
|
||
|
|
<label>type_traits</label>
|
||
|
|
</node>
|
||
|
|
<node id="4">
|
||
|
|
<label>utility</label>
|
||
|
|
</node>
|
||
|
|
</incdepgraph>
|
||
|
|
<invincdepgraph>
|
||
|
|
<node id="5">
|
||
|
|
<label>src/compile_time_checks/serif/geometry/deformation_meanfield.cpp</label>
|
||
|
|
<link refid="deformation__meanfield_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="15">
|
||
|
|
<label>src/compile_time_checks/serif/geometry/surface.cpp</label>
|
||
|
|
<link refid="surface_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="12">
|
||
|
|
<label>src/compile_time_checks/serif/geometry/surface_boundary.cpp</label>
|
||
|
|
<link refid="surface__boundary_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="18">
|
||
|
|
<label>src/compile_time_checks/serif/operators/computation_owners.cpp</label>
|
||
|
|
<link refid="computation__owners_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="19">
|
||
|
|
<label>src/compile_time_checks/serif/operators/serial_backend.cpp</label>
|
||
|
|
<link refid="serial__backend_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="25">
|
||
|
|
<label>src/compile_time_checks/serif/solver/normalization/plan.cpp</label>
|
||
|
|
<link refid="solver_2normalization_2plan_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="26">
|
||
|
|
<label>src/compile_time_checks/serif/utils/dependencies/computation_graph.cpp</label>
|
||
|
|
<link refid="computation__graph_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="27">
|
||
|
|
<label>src/compile_time_checks/serif/utils/dependencies/mixed_errors.cpp</label>
|
||
|
|
<link refid="mixed__errors_8cpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="6">
|
||
|
|
<label>src/include/serif/geometry/deformation/backend/mfem/computations.hpp</label>
|
||
|
|
<link refid="geometry_2deformation_2backend_2mfem_2computations_8hpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="4">
|
||
|
|
<label>src/include/serif/geometry/deformation/backend/mfem/inputs.hpp</label>
|
||
|
|
<link refid="inputs_8hpp"/>
|
||
|
|
<childnode refid="5" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="7" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="8" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="7">
|
||
|
|
<label>src/include/serif/geometry/deformation/backend/mfem/volume_displacement.hpp</label>
|
||
|
|
<link refid="volume__displacement_8hpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="3">
|
||
|
|
<label>src/include/serif/geometry/deformation/computations.hpp</label>
|
||
|
|
<link refid="geometry_2deformation_2computations_8hpp"/>
|
||
|
|
<childnode refid="4" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="7" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="9" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="9">
|
||
|
|
<label>src/include/serif/geometry/deformation/deformation.hpp</label>
|
||
|
|
<link refid="deformation_8hpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="11">
|
||
|
|
<label>src/include/serif/geometry/surface/backend/mfem/boundary_computations.hpp</label>
|
||
|
|
<link refid="boundary__computations_8hpp"/>
|
||
|
|
<childnode refid="12" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="13" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="13">
|
||
|
|
<label>src/include/serif/geometry/surface/backend/mfem/pressure_boundary.hpp</label>
|
||
|
|
<link refid="pressure__boundary_8hpp"/>
|
||
|
|
</node>
|
||
|
|
<node id="10">
|
||
|
|
<label>src/include/serif/geometry/surface/computations.hpp</label>
|
||
|
|
<link refid="geometry_2surface_2computations_8hpp"/>
|
||
|
|
<childnode refid="11" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="14" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="14">
|
||
|
|
<label>src/include/serif/geometry/surface/surface.hpp</label>
|
||
|
|
<link refid="surface_8hpp"/>
|
||
|
|
<childnode refid="15" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="17">
|
||
|
|
<label>src/include/serif/operators/backend/mfem/nodal_computations.hpp</label>
|
||
|
|
<link refid="nodal__computations_8hpp"/>
|
||
|
|
<childnode refid="18" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="19" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="20">
|
||
|
|
<label>src/include/serif/operators/backend/mfem/volume_computations.hpp</label>
|
||
|
|
<link refid="volume__computations_8hpp"/>
|
||
|
|
<childnode refid="18" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="24">
|
||
|
|
<label>src/include/serif/utils/dependencies/computation_cache.hpp</label>
|
||
|
|
<link refid="computation__cache_8hpp"/>
|
||
|
|
<childnode refid="15" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="12" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="25" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="26" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="27" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="16" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="2">
|
||
|
|
<label>src/include/serif/utils/dependencies/computation_graph.hpp</label>
|
||
|
|
<link refid="computation__graph_8hpp"/>
|
||
|
|
<childnode refid="3" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="10" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="16" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="21" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="16">
|
||
|
|
<label>src/include/serif/utils/dependencies/dependencies.hpp</label>
|
||
|
|
<link refid="dependencies_8hpp"/>
|
||
|
|
<childnode refid="17" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="20" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="23">
|
||
|
|
<label>src/include/serif/utils/dependencies/detail/cache_storage.hpp</label>
|
||
|
|
<link refid="cache__storage_8hpp"/>
|
||
|
|
<childnode refid="24" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="22">
|
||
|
|
<label>src/include/serif/utils/dependencies/detail/cache_traits.hpp</label>
|
||
|
|
<link refid="cache__traits_8hpp"/>
|
||
|
|
<childnode refid="23" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="1">
|
||
|
|
<label>src/include/serif/utils/dependencies/detail/graph.hpp</label>
|
||
|
|
<link refid="graph_8hpp"/>
|
||
|
|
<childnode refid="2" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="21">
|
||
|
|
<label>src/include/serif/utils/dependencies/detail/schema.hpp</label>
|
||
|
|
<link refid="schema_8hpp"/>
|
||
|
|
<childnode refid="22" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="8">
|
||
|
|
<label>src/lib/serif/geometry/deformation/backend/mfem/inputs.cpp</label>
|
||
|
|
<link refid="inputs_8cpp"/>
|
||
|
|
</node>
|
||
|
|
</invincdepgraph>
|
||
|
|
<innerclass refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph" prot="public">serif::utils::dependencies::detail::Graph</innerclass>
|
||
|
|
<innernamespace refid="namespaceserif">serif</innernamespace>
|
||
|
|
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
|
||
|
|
<innernamespace refid="namespaceserif_1_1utils_1_1dependencies">serif::utils::dependencies</innernamespace>
|
||
|
|
<innernamespace refid="namespaceserif_1_1utils_1_1dependencies_1_1detail">serif::utils::dependencies::detail</innernamespace>
|
||
|
|
<briefdescription>
|
||
|
|
</briefdescription>
|
||
|
|
<detaileddescription>
|
||
|
|
</detaileddescription>
|
||
|
|
<programlisting>
|
||
|
|
<codeline lineno="1"><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><array></highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><cstddef></highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><utility></highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="type__lists_8hpp" kindref="compound">serif/utils/dependencies/detail/type_lists.hpp</ref>"</highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="7"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1dependencies_1_1detail" kindref="compound">serif::utils::dependencies::detail</ref><sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="9"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal">...<sp/>Computations></highlight></codeline>
|
||
|
|
<codeline lineno="10" refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph" kindref="compound">Graph</ref><sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="11"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::size_t<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref><sp/>=<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">...(Computations);</highlight></codeline>
|
||
|
|
<codeline lineno="12"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a30a22907ad9f064edbe1047e8d1201e0" kindref="member">Mask</ref><sp/>=<sp/>std::array<bool,<sp/>size>;</highlight></codeline>
|
||
|
|
<codeline lineno="13"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1ae92c32716befde7edbfb1290b4bc6cd5" kindref="member">Matrix</ref><sp/>=<sp/>std::array<Mask,<sp/>size>;</highlight></codeline>
|
||
|
|
<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a2cae4fb747bd5edbed5801ff5666e3c5" kindref="member">Order</ref><sp/>=<sp/>std::array<std::size_t,<sp/>size>;</highlight></codeline>
|
||
|
|
<codeline lineno="15"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>ComputationT></highlight></codeline>
|
||
|
|
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">consteval</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a30a22907ad9f064edbe1047e8d1201e0" kindref="member">Mask</ref><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1ae0486a0084e50c80095221536e7973cf" kindref="member">prerequisites</ref>()<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>{<ref refid="namespaceserif_1_1utils_1_1dependencies_1_1detail_1adcd28bf11a044455e737aed9a52bb0d4" kindref="member">contains_key_v<typename Computations::Key, typename ComputationT::Inputs></ref>...};</highlight></codeline>
|
||
|
|
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="21"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1ae92c32716befde7edbfb1290b4bc6cd5" kindref="member">Matrix</ref><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a327b325cb006359e68f9550cfb129095" kindref="member">edges</ref>{<ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1ae0486a0084e50c80095221536e7973cf" kindref="member">prerequisites<Computations></ref>()...};</highlight></codeline>
|
||
|
|
<codeline lineno="23"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">consteval</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a2cae4fb747bd5edbed5801ff5666e3c5" kindref="member">Order</ref><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a8da45659d9bc1475d4b262fbb7162ef0" kindref="member">make_order</ref>()<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a2cae4fb747bd5edbed5801ff5666e3c5" kindref="member">Order</ref><sp/>result{};</highlight></codeline>
|
||
|
|
<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.fill(<ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>);</highlight></codeline>
|
||
|
|
<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a30a22907ad9f064edbe1047e8d1201e0" kindref="member">Mask</ref><sp/>visited{};</highlight></codeline>
|
||
|
|
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>position<sp/>=<sp/>0;<sp/>position<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++position)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>candidate<sp/>=<sp/>0;<sp/>candidate<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++candidate)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(visited[candidate])<sp/>{<sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;<sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>ready<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
||
|
|
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>input<sp/>=<sp/>0;<sp/>input<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++input)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a327b325cb006359e68f9550cfb129095" kindref="member">edges</ref>[candidate][input]<sp/>&&<sp/>!visited[input])<sp/>{<sp/>ready<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;<sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ready)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[position]<sp/>=<sp/>candidate;</highlight></codeline>
|
||
|
|
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>visited[candidate]<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
||
|
|
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
|
||
|
|
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
|
||
|
|
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a2cae4fb747bd5edbed5801ff5666e3c5" kindref="member">Order</ref><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1acd97a51cb699f0479480c478b3e56278" kindref="member">order</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a8da45659d9bc1475d4b262fbb7162ef0" kindref="member">make_order</ref>();</highlight></codeline>
|
||
|
|
<codeline lineno="47"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">consteval</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1af43c6224d35d55c2221d4612ab29c6b2" kindref="member">acyclic</ref>()<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::size_t<sp/>index<sp/>:<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1acd97a51cb699f0479480c478b3e56278" kindref="member">order</ref>)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(index<sp/>==<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;<sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
||
|
|
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="55"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal">...<sp/>Keys></highlight></codeline>
|
||
|
|
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">consteval</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a30a22907ad9f064edbe1047e8d1201e0" kindref="member">Mask</ref><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1af0445ccc24b5bf73cd856ca9ab8c27e5" kindref="member">required</ref>(<ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">KeyList<Keys...></ref>)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a30a22907ad9f064edbe1047e8d1201e0" kindref="member">Mask</ref><sp/>result{(<ref refid="namespaceserif_1_1utils_1_1dependencies_1_1detail_1adcd28bf11a044455e737aed9a52bb0d4" kindref="member">contains_key_v</ref><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Computations::Key,<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">KeyList</ref><Keys...>>)...};</highlight></codeline>
|
||
|
|
<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>pass<sp/>=<sp/>0;<sp/>pass<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++pass)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>user<sp/>=<sp/>0;<sp/>user<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++user)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!result[user])<sp/>{<sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;<sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>input<sp/>=<sp/>0;<sp/>input<sp/><<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a4fc1a8210eeb34f31b9363984be01d59" kindref="member">size</ref>;<sp/>++input)<sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[input]<sp/>=<sp/>result[input]<sp/>||<sp/><ref refid="structserif_1_1utils_1_1dependencies_1_1detail_1_1_graph_1a327b325cb006359e68f9550cfb129095" kindref="member">edges</ref>[user][input];</highlight></codeline>
|
||
|
|
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
|
||
|
|
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
|
||
|
|
<codeline lineno="71"><highlight class="normal">}</highlight></codeline>
|
||
|
|
</programlisting>
|
||
|
|
<location file="src/include/serif/utils/dependencies/detail/graph.hpp"/>
|
||
|
|
</compounddef>
|
||
|
|
</doxygen>
|