Files
MeanField_SERiF/docs/xml/invertible_8hpp.xml

98 lines
6.7 KiB
XML
Raw Permalink 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="invertible_8hpp" kind="file" language="C++">
<compoundname>invertible.hpp</compoundname>
<includes refid="backend_2mfem_2shared_2finite_8hpp" local="yes">serif/backend/mfem/shared/finite.hpp</includes>
<includedby refid="domain__mapper_8cpp" local="yes">src/lib/serif/backend/mfem/mapping/domain_mapper.cpp</includedby>
<incdepgraph>
<node id="2">
<label>serif/backend/mfem/shared/finite.hpp</label>
<link refid="backend_2mfem_2shared_2finite_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/backend/mfem/shared/invertible.hpp</label>
<link refid="invertible_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="3">
<label>serif/utils/checks/finite.hpp</label>
<link refid="utils_2checks_2finite_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="5">
<label>serif/utils/misc/concepts/numeric.hpp</label>
<link refid="numeric_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="4">
<label>cmath</label>
</node>
<node id="6">
<label>concepts</label>
</node>
<node id="9">
<label>mfem/linalg/densemat.hpp</label>
</node>
<node id="8">
<label>mfem/linalg/vector.hpp</label>
</node>
<node id="7">
<label>type_traits</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="1">
<label>src/include/serif/backend/mfem/shared/invertible.hpp</label>
<link refid="invertible_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="2">
<label>src/lib/serif/backend/mfem/mapping/domain_mapper.cpp</label>
<link refid="domain__mapper_8cpp"/>
</node>
</invincdepgraph>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
<innernamespace refid="namespaceserif_1_1utils_1_1checks">serif::utils::checks</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/>&quot;<ref refid="backend_2mfem_2shared_2finite_8hpp" kindref="compound">serif/backend/mfem/shared/finite.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1checks" kindref="compound">serif::utils::checks</ref></highlight></codeline>
<codeline lineno="6"><highlight class="normal">{</highlight></codeline>
<codeline lineno="12"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1checks_1a3471cc276b4a977cff023828197af29e" kindref="member">has_stable_inverse</ref>(const<sp/>::mfem::DenseMatrix&amp;<sp/>matrix)</highlight></codeline>
<codeline lineno="13"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>dimension<sp/>=<sp/>matrix.Width();</highlight></codeline>
<codeline lineno="15"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(dimension<sp/>&lt;<sp/>1<sp/>||<sp/>dimension<sp/>&gt;<sp/>3<sp/>||<sp/>matrix.Height()<sp/>!=<sp/>dimension<sp/>||<sp/>!<ref refid="namespaceserif_1_1utils_1_1checks_1a4eb8e1d2bdd4bdae0242814f9018537e" kindref="member">is_finite</ref>(matrix))</highlight></codeline>
<codeline lineno="16"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
<codeline lineno="17"><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">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>determinant<sp/>=<sp/>matrix.Det();</highlight></codeline>
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>threshold<sp/>=<sp/>1.0e-14<sp/>*<sp/>std::pow(matrix.FNorm()<sp/>/<sp/>dimension,<sp/>dimension);</highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::isfinite(determinant)<sp/>&amp;&amp;<sp/>std::abs(determinant)<sp/>&gt;<sp/>threshold;</highlight></codeline>
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="23"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/backend/mfem/shared/invertible.hpp"/>
</compounddef>
</doxygen>