Files
MeanField_SERiF/docs/xml/solution_8hpp.xml

566 lines
51 KiB
XML
Raw Normal View History

<?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="solution_8hpp" kind="file" language="C++">
<compoundname>solution.hpp</compoundname>
<includes local="no">cstddef</includes>
<includes local="no">expected</includes>
<includes local="no">optional</includes>
<includes local="no">string</includes>
<includes local="no">string_view</includes>
<includes local="no">vector</includes>
<includes local="no">format</includes>
<includes refid="errors_8hpp" local="yes">serif/utils/error/errors.hpp</includes>
<includedby refid="laneemden_8hpp" local="yes">src/include/serif/utils/laneemden/laneemden.hpp</includedby>
<includedby refid="scaling_8hpp" local="yes">src/include/serif/utils/laneemden/scaling.hpp</includedby>
<includedby refid="solution_8cpp" local="yes">src/lib/serif/utils/laneemden/solution.cpp</includedby>
<incdepgraph>
<node id="24">
<label>serif/meta/enums.hpp</label>
<link refid="enums_8hpp"/>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="23">
<label>serif/utils/error/codes.hpp</label>
<link refid="codes_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="9">
<label>serif/utils/error/errors.hpp</label>
<link refid="errors_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/utils/laneemden/solution.hpp</label>
<link refid="solution_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>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="18">
<label>serif/utils/misc/concepts/exceptions.hpp</label>
<link refid="utils_2misc_2concepts_2exceptions_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="21">
<label>serif/utils/misc/concepts/numeric.hpp</label>
<link refid="numeric_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="14">
<label>serif/utils/misc/terminal/colors.hpp</label>
<link refid="colors_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="27">
<label>serif/utils/types/strings.hpp</label>
<link refid="types_2strings_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="12">
<label>algorithm</label>
</node>
<node id="22">
<label>concepts</label>
</node>
<node id="2">
<label>cstddef</label>
</node>
<node id="11">
<label>cstdint</label>
</node>
<node id="10">
<label>cstdio</label>
</node>
<node id="15">
<label>cstdlib</label>
</node>
<node id="19">
<label>exception</label>
</node>
<node id="3">
<label>expected</label>
</node>
<node id="8">
<label>format</label>
</node>
<node id="28">
<label>iostream</label>
</node>
<node id="26">
<label>magic_enum/magic_enum_all.hpp</label>
</node>
<node id="4">
<label>optional</label>
</node>
<node id="5">
<label>string</label>
</node>
<node id="6">
<label>string_view</label>
</node>
<node id="20">
<label>type_traits</label>
</node>
<node id="17">
<label>unistd.h</label>
</node>
<node id="25">
<label>unordered_map</label>
</node>
<node id="16">
<label>utility</label>
</node>
<node id="7">
<label>vector</label>
</node>
<node id="13">
<label>version</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="22">
<label>src/compile_time_checks/serif/backend_independent.cpp</label>
<link refid="backend__independent_8cpp"/>
</node>
<node id="6">
<label>src/compile_time_checks/serif/model/barotropic_density.cpp</label>
<link refid="barotropic__density_8cpp"/>
</node>
<node id="7">
<label>src/compile_time_checks/serif/model/density_primal.cpp</label>
<link refid="density__primal_8cpp"/>
</node>
<node id="8">
<label>src/compile_time_checks/serif/model/normalization.cpp</label>
<link refid="normalization_8cpp"/>
</node>
<node id="11">
<label>src/compile_time_checks/serif/model/state.cpp</label>
<link refid="state_8cpp"/>
</node>
<node id="27">
<label>src/compile_time_checks/serif/solver/public_contracts.cpp</label>
<link refid="public__contracts_8cpp"/>
</node>
<node id="3">
<label>src/compile_time_checks/serif/utils/laneemden.cpp</label>
<link refid="laneemden_8cpp"/>
</node>
<node id="10">
<label>src/include/serif/backend/mfem/model/equilibrium.hpp</label>
<link refid="backend_2mfem_2model_2equilibrium_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="9">
<label>src/include/serif/backend/mfem/model/normalization/computations.hpp</label>
<link refid="backend_2mfem_2model_2normalization_2computations_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="18">
<label>src/include/serif/backend/mfem/serialize/configuration.hpp</label>
<link refid="backend_2mfem_2serialize_2configuration_8hpp"/>
</node>
<node id="19">
<label>src/include/serif/backend/mfem/serialize/options.hpp</label>
<link refid="backend_2mfem_2serialize_2options_8hpp"/>
</node>
<node id="13">
<label>src/include/serif/backend/mfem/solver/equilibrium.hpp</label>
<link refid="backend_2mfem_2solver_2equilibrium_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="12">
<label>src/include/serif/backend/mfem/solver/nonlinear/stellar_problem.hpp</label>
<link refid="stellar__problem_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="29">
<label>src/include/serif/backend/mfem/solver/seed/fitted.hpp</label>
<link refid="backend_2mfem_2solver_2seed_2fitted_8hpp"/>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
</node>
<node id="30">
<label>src/include/serif/backend/mfem/solver/seed/state.hpp</label>
<link refid="backend_2mfem_2solver_2seed_2state_8hpp"/>
<childnode refid="31" relation="include">
</childnode>
</node>
<node id="24">
<label>src/include/serif/model/configured_discretization.hpp</label>
<link refid="configured__discretization_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="5">
<label>src/include/serif/model/normalization/plan.hpp</label>
<link refid="model_2normalization_2plan_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="23">
<label>src/include/serif/model/normalization/reference.hpp</label>
<link refid="reference_8hpp"/>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="15">
<label>src/include/serif/solver/continuation/equilibrium.hpp</label>
<link refid="solver_2continuation_2equilibrium_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="14">
<label>src/include/serif/solver/equilibrium.hpp</label>
<link refid="solver_2equilibrium_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="4">
<label>src/include/serif/solver/normalization/configuration.hpp</label>
<link refid="solver_2normalization_2configuration_8hpp"/>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="25">
<label>src/include/serif/solver/normalization/normalization.hpp</label>
<link refid="normalization_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="28">
<label>src/include/serif/solver/seed/fitted.hpp</label>
<link refid="solver_2seed_2fitted_8hpp"/>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
</node>
<node id="26">
<label>src/include/serif/solver/seed/polytrope.hpp</label>
<link refid="polytrope_8hpp"/>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
</node>
<node id="31">
<label>src/include/serif/solver/seed/state.hpp</label>
<link refid="solver_2seed_2state_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="16">
<label>src/include/serif/solver/solver.hpp</label>
<link refid="solver_2solver_8hpp"/>
</node>
<node id="2">
<label>src/include/serif/utils/laneemden/laneemden.hpp</label>
<link refid="laneemden_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="34">
<label>src/include/serif/utils/laneemden/scaling.hpp</label>
<link refid="scaling_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/utils/laneemden/solution.hpp</label>
<link refid="solution_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
</node>
<node id="17">
<label>src/include/serif/utils/serialize/numerics.hpp</label>
<link refid="numerics_8hpp"/>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="21">
<label>src/include/serif/utils/serialize/serialize.hpp</label>
<link refid="serialize_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="20">
<label>src/include/serif/utils/serialize/solver.hpp</label>
<link refid="utils_2serialize_2solver_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="32">
<label>src/lib/serif/solver/seed/fitted.cpp</label>
<link refid="fitted_8cpp"/>
</node>
<node id="33">
<label>src/lib/serif/solver/seed/polytrope.cpp</label>
<link refid="polytrope_8cpp"/>
</node>
<node id="35">
<label>src/lib/serif/utils/laneemden/scaling.cpp</label>
<link refid="scaling_8cpp"/>
</node>
<node id="36">
<label>src/lib/serif/utils/laneemden/solution.cpp</label>
<link refid="solution_8cpp"/>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" prot="public">serif::utils::laneemden::IntegrationOptions</innerclass>
<innerclass refid="structserif_1_1utils_1_1laneemden_1_1_sample" prot="public">serif::utils::laneemden::Sample</innerclass>
<innerclass refid="structserif_1_1utils_1_1laneemden_1_1_solution" prot="public">serif::utils::laneemden::Solution</innerclass>
<innerclass refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_integration_options_01_4" prot="public">std::formatter&lt; serif::utils::laneemden::IntegrationOptions &gt;</innerclass>
<innerclass refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4" prot="public">std::formatter&lt; serif::utils::laneemden::Sample &gt;</innerclass>
<innerclass refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4" prot="public">std::formatter&lt; serif::utils::laneemden::Solution &gt;</innerclass>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
<innernamespace refid="namespaceserif_1_1utils_1_1laneemden">serif::utils::laneemden</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/>&lt;cstddef&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;expected&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;optional&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string_view&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;vector&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;format&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="errors_8hpp" kindref="compound">serif/utils/error/errors.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1laneemden" kindref="compound">serif::utils::laneemden</ref><sp/>{</highlight></codeline>
<codeline lineno="15" refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" 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_1laneemden_1_1_integration_options" kindref="compound">IntegrationOptions</ref><sp/>final<sp/>{</highlight></codeline>
<codeline lineno="16"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1af239fee4cf42ae448865d70fc7114bff" kindref="member">step</ref><sp/>=<sp/>0.01;</highlight></codeline>
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1aac80123ebcec8a343c9375d2fd86ebc6" kindref="member">maximum_radius</ref><sp/>=<sp/>100.0;</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::size_t<sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1a85a0926bde7453430269791323190ca2" kindref="member">maximum_steps</ref><sp/>=<sp/>100000;</highlight></codeline>
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1af1276d1742eb704d227245be9803a94c" kindref="member">surface_tolerance</ref><sp/>=<sp/>1e-10;</highlight></codeline>
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::size_t<sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1a989c93ecaa89d1389fe252794a418942" kindref="member">central_series_terms</ref><sp/>=<sp/>12;</highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight></codeline>
<codeline lineno="23"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">friend</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1a2d6aeec3cb0667dbb1138d7af39aa2b4" kindref="member">operator==</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" kindref="compound">IntegrationOptions</ref><sp/>&amp;,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" kindref="compound">IntegrationOptions</ref><sp/>&amp;)<sp/>=<sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight></codeline>
<codeline lineno="27" refid="structserif_1_1utils_1_1laneemden_1_1_sample" 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_1laneemden_1_1_sample" kindref="compound">Sample</ref><sp/>final<sp/>{</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1a5f2f0da73c838f8bfb35b619ad89990f" kindref="member">xi</ref>;</highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa92282211496ca7b361ef3f31d9e465e" kindref="member">theta</ref>;</highlight></codeline>
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa5152e507709d0be939b401369717016" kindref="member">derivative</ref>;</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="34" refid="structserif_1_1utils_1_1laneemden_1_1_solution" 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_1laneemden_1_1_solution" kindref="compound">Solution</ref><sp/>final<sp/>{</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1aff5e0a1a74ce006f67def5627bd8e7f2" kindref="member">n</ref>;</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;Sample&gt;<sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac19cb9823a1881cdc74786b01b1c2e2e" kindref="member">samples</ref>;</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::optional&lt;Sample&gt;<sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac8054d182ab27d4fd4921e6399d5be92" kindref="member">surface</ref>;</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="39"><highlight class="normal"></highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/>std::expected&lt;Solution,<sp/>std::string&gt;<sp/><ref refid="namespaceserif_1_1utils_1_1laneemden_1aac284388ff73263db8d245669cb8e60f" kindref="member">solve</ref>(</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>n,<sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" kindref="compound">IntegrationOptions</ref><sp/>options<sp/>=<sp/>{});</highlight></codeline>
<codeline lineno="49"><highlight class="normal"></highlight></codeline>
<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/>std::expected&lt;Sample,<sp/>std::string&gt;<sp/><ref refid="namespaceserif_1_1utils_1_1laneemden_1ac58bd2b83384f8454be7fd0b11cd9332" kindref="member">evaluate</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>Solution<sp/>&amp;solution,<sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>xi);</highlight></codeline>
<codeline lineno="52"><highlight class="normal">}</highlight></codeline>
<codeline lineno="53"><highlight class="normal"></highlight></codeline>
<codeline lineno="54"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="55" refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_integration_options_01_4" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">std::formatter&lt;<ref refid="namespaceserif" kindref="compound">serif</ref>::utils::laneemden::IntegrationOptions&gt;<sp/>{</highlight></codeline>
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>FormatContext&gt;</highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_integration_options_01_4_1aaa971c25cf26c638f14ec5eea8b229f6" kindref="member">format</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options" kindref="compound">serif::utils::laneemden::IntegrationOptions</ref><sp/>&amp;options,<sp/>FormatContext<sp/>&amp;ctx)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;step={},<sp/>maximum_radius={},<sp/>maximum_steps={},<sp/>surface_tolerance={},<sp/>central_series_terms={}&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>options.<ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1af239fee4cf42ae448865d70fc7114bff" kindref="member">step</ref>,<sp/>options.<ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1aac80123ebcec8a343c9375d2fd86ebc6" kindref="member">maximum_radius</ref>,<sp/>options.<ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1a85a0926bde7453430269791323190ca2" kindref="member">maximum_steps</ref>,<sp/>options.<ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1af1276d1742eb704d227245be9803a94c" kindref="member">surface_tolerance</ref>,<sp/>options.<ref refid="structserif_1_1utils_1_1laneemden_1_1_integration_options_1a989c93ecaa89d1389fe252794a418942" kindref="member">central_series_terms</ref>);</highlight></codeline>
<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="61"><highlight class="normal">};</highlight></codeline>
<codeline lineno="62"><highlight class="normal"></highlight></codeline>
<codeline lineno="64"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="65" refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">std::formatter&lt;<ref refid="namespaceserif" kindref="compound">serif</ref>::utils::laneemden::Sample&gt;<sp/>{</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">enum<sp/>class</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816" kindref="member">Component</ref><sp/>{<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816aa181a603769c1f98ad927e7367c7aa51" kindref="member">all</ref>,<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816ad88468fb83a6d5675fcd2bdcb8fa57bf" kindref="member">xi</ref>,<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a61a74be60d291cc4678ab46cc1cdaf91" kindref="member">theta</ref>,<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a98081e91c3bdc7c16c0f26719caf3abe" kindref="member">derivative</ref><sp/>};</highlight></codeline>
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816" kindref="member">Component</ref><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref>{<ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816aa181a603769c1f98ad927e7367c7aa51" kindref="member">Component::all</ref>};</highlight></codeline>
<codeline lineno="68"><highlight class="normal"></highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1ab0bed46250abda251c1fd70888cd57d6" kindref="member">parse</ref>(std::format_parse_context<sp/>&amp;ctx)<sp/>{</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/>namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1errors" kindref="compound">serif::utils::errors</ref>;</highlight></codeline>
<codeline lineno="72"><highlight class="normal"></highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref><sp/>=<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816aa181a603769c1f98ad927e7367c7aa51" kindref="member">Component::all</ref>;</highlight></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>end<sp/>=<sp/>ctx.begin();</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(end<sp/>!=<sp/>ctx.end()<sp/>&amp;&amp;<sp/>*end<sp/>!=<sp/></highlight><highlight class="charliteral">&apos;}&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++end;</highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(end<sp/>==<sp/>ctx.begin())<sp/>{</highlight></codeline>
<codeline lineno="79"><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/>end;</highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string_view<sp/>selection(ctx.begin(),<sp/>end);</highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(selection<sp/>==<sp/></highlight><highlight class="stringliteral">&quot;all&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref><sp/>=<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816aa181a603769c1f98ad927e7367c7aa51" kindref="member">Component::all</ref>;</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(selection<sp/>==<sp/></highlight><highlight class="stringliteral">&quot;xi&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref><sp/>=<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816ad88468fb83a6d5675fcd2bdcb8fa57bf" kindref="member">Component::xi</ref>;</highlight></codeline>
<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(selection<sp/>==<sp/></highlight><highlight class="stringliteral">&quot;theta&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref><sp/>=<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a61a74be60d291cc4678ab46cc1cdaf91" kindref="member">Component::theta</ref>;</highlight></codeline>
<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(selection<sp/>==<sp/></highlight><highlight class="stringliteral">&quot;derivative&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref><sp/>=<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a98081e91c3bdc7c16c0f26719caf3abe" kindref="member">Component::derivative</ref>;</highlight></codeline>
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1errors_1a2447eb80947534cdf0fbd205251cfd9c" kindref="member">serif_error&lt;std::format_error, SERiFErrorCode::INVALID_ARGUMENT&gt;</ref>(</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;Unknown<sp/>Lane–Emden<sp/>sample<sp/>selector<sp/>&apos;{}&apos;.<sp/>Use<sp/>an<sp/>empty<sp/>specifier,<sp/>&apos;all&apos;,<sp/>&apos;xi&apos;,<sp/>&apos;theta&apos;,<sp/>or<sp/>&apos;derivative&apos;.&quot;</highlight><highlight class="normal">,<sp/>selection);</highlight></codeline>
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>end;</highlight></codeline>
<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="96"><highlight class="normal"></highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>FormatContext&gt;</highlight></codeline>
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a52ad8ba774b78a426f7647aa46d2e691" kindref="member">format</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_sample" kindref="compound">serif::utils::laneemden::Sample</ref><sp/>&amp;sample,<sp/>FormatContext<sp/>&amp;ctx)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">switch</highlight><highlight class="normal"><sp/>(<ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a0b689f4d108d8d44a17a2b1558dcc5c4" kindref="member">component</ref>)<sp/>{</highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816ad88468fb83a6d5675fcd2bdcb8fa57bf" kindref="member">Component::xi</ref>:</highlight></codeline>
<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;{}&quot;</highlight><highlight class="normal">,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1a5f2f0da73c838f8bfb35b619ad89990f" kindref="member">xi</ref>);</highlight></codeline>
<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a61a74be60d291cc4678ab46cc1cdaf91" kindref="member">Component::theta</ref>:</highlight></codeline>
<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;{}&quot;</highlight><highlight class="normal">,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa92282211496ca7b361ef3f31d9e465e" kindref="member">theta</ref>);</highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_sample_01_4_1a3e2e2cc63aafb3d5330c578a37b2b816a98081e91c3bdc7c16c0f26719caf3abe" kindref="member">Component::derivative</ref>:</highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;{}&quot;</highlight><highlight class="normal">,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa5152e507709d0be939b401369717016" kindref="member">derivative</ref>);</highlight></codeline>
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;(ξ={},<sp/>θ={},<sp/>dθ/dξ={})&quot;</highlight><highlight class="normal">,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1a5f2f0da73c838f8bfb35b619ad89990f" kindref="member">xi</ref>,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa92282211496ca7b361ef3f31d9e465e" kindref="member">theta</ref>,<sp/>sample.<ref refid="structserif_1_1utils_1_1laneemden_1_1_sample_1aa5152e507709d0be939b401369717016" kindref="member">derivative</ref>);</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="111"><highlight class="normal">};</highlight></codeline>
<codeline lineno="112"><highlight class="normal"></highlight></codeline>
<codeline lineno="114"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="115" refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal">std::formatter&lt;<ref refid="namespaceserif" kindref="compound">serif</ref>::<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution" kindref="compound">utils::laneemden::Solution</ref>&gt;<sp/>{</highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/>std::formatter&lt;serif::utils::laneemden::Sample&gt;<sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1ab46518d60ff707fdf5f53626f62a860a" kindref="member">sample_formatter</ref>;</highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1a7b99774c03c51dca65e5c4d190907f03" kindref="member">parse</ref>(std::format_parse_context<sp/>&amp;ctx)<sp/>{</highlight></codeline>
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1ab46518d60ff707fdf5f53626f62a860a" kindref="member">sample_formatter</ref>.parse(ctx);</highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="122"><highlight class="normal"></highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>FormatContext&gt;</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1a2201f3186b825b9d86f47bf2954ebcfe" kindref="member">format</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1laneemden_1_1_solution" kindref="compound">serif::utils::laneemden::Solution</ref><sp/>&amp;solution,<sp/>FormatContext<sp/>&amp;ctx)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;Solution(n={},<sp/>samples=[&quot;</highlight><highlight class="normal">,<sp/>solution.<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1aff5e0a1a74ce006f67def5627bd8e7f2" kindref="member">n</ref>));</highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(std::size_t<sp/>index<sp/>=<sp/>0;<sp/>index<sp/>&lt;<sp/>solution.<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac19cb9823a1881cdc74786b01b1c2e2e" kindref="member">samples</ref>.size();<sp/>++index)<sp/>{</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><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/>0)<sp/>{</highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;,<sp/>&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(<ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1ab46518d60ff707fdf5f53626f62a860a" kindref="member">sample_formatter</ref>.format(solution.<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac19cb9823a1881cdc74786b01b1c2e2e" kindref="member">samples</ref>[index],<sp/>ctx));</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;],<sp/>surface=&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(solution.<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac8054d182ab27d4fd4921e6399d5be92" kindref="member">surface</ref>)<sp/>{</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(<ref refid="structstd_1_1formatter_3_01serif_1_1utils_1_1laneemden_1_1_solution_01_4_1ab46518d60ff707fdf5f53626f62a860a" kindref="member">sample_formatter</ref>.format(*solution.<ref refid="structserif_1_1utils_1_1laneemden_1_1_solution_1ac8054d182ab27d4fd4921e6399d5be92" kindref="member">surface</ref>,<sp/>ctx));</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ctx.advance_to(std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;none&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::format_to(ctx.out(),<sp/></highlight><highlight class="stringliteral">&quot;)&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="141"><highlight class="normal">};</highlight></codeline>
</programlisting>
<location file="src/include/serif/utils/laneemden/solution.hpp"/>
</compounddef>
</doxygen>