<?xml version="1.0" encoding="UTF-8"?>
<mrdocs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc">
<namespace id="//////////////////////////8=">
  <namespace name="mp_units" id="hCn62LdBUfbE7fllURPFLEi4qK8=">
    <namespace name="detail" id="e4yuejq4AE5BGFBROuVxGbVfJ3c=">
      <doc>
        <brief>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </brief>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
        <para>
          <text>//////////// COMPLEX SCALAR ///////////////</text>
        </para>
        <para>
          <text>//////////// VECTOR ///////////////</text>
        </para>
        <para>
          <text>Specifies that the provided </text>
          <mono>Q</mono>
          <text> should be treated as a quantity kind.</text>
        </para>
      </doc>
      <namespace name="imag_impl" id="Q5kEWY43p24//iT063QbkIyGEQI=">
        <struct name="imag_t" id="Mbx+iAZXot0X2K2fgwC/IEEXYHU=">
          <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="116" class="def"/>
        </struct>
      </namespace>
      <namespace name="magnitude_impl" id="9KYo8l9W+oNTWhdxHHBh0/hCXh0=">
        <doc>
          <brief>
            <text>//////////// VECTOR ///////////////</text>
          </brief>
        </doc>
        <struct name="magnitude_t" id="lpglSFVzmg9TiyUsfUIas2aqXlc=">
          <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="223" class="def"/>
        </struct>
      </namespace>
      <namespace name="modulus_impl" id="9qEm8isert8iC3Jy9Lr/9q3mPsE=">
        <struct name="modulus_t" id="gOC7BuPSqLTCNjxihoi5y4iWMGA=">
          <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="141" class="def"/>
        </struct>
      </namespace>
      <namespace name="real_impl" id="JD9WZezMzJ3LlrLOSijF52I8110=">
        <doc>
          <brief>
            <text>//////////// COMPLEX SCALAR ///////////////</text>
          </brief>
        </doc>
        <struct name="real_t" id="ojLEIR3xCIIfWRjLh2CiVd/W7iw=">
          <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="92" class="def"/>
        </struct>
      </namespace>
      <template>
        <tparam name="Q" class="constant" type="QuantitySpec auto"/>
        <tparam name="U" class="constant" type="Unit auto"/>
        <namespace-alias name="reference_t" id="2GsiK1S0WiAEDsUNueCpaCNhP9g=">
          <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="46"/>
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;decltype(Q), decltype(U)&gt;"/>
        </namespace-alias>
      </template>
      <struct name="cartesian_vector_iface" id="BF9GgViqkdhvRk/ivQc/SXdmTvA=">
        <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="55" class="def"/>
      </struct>
      <template>
        <tparam class="constant" type="bool"/>
        <struct name="conditional_impl" id="aGlx1js8UyCPUfgAFDkIDHhm9U8=">
          <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="43" class="def"/>
        </struct>
      </template>
      <template>
        <tparam name="Expr" class="type"/>
        <struct name="derived_dimension_impl" id="lenFtI2LLAKDDPi3md1AI0KB0w8=">
          <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="65" class="def"/>
          <base>
            <type id="M26cvPSimTpf9F39mM55q2XNs/w=" name="expr_fractions&lt;dimension_one, Expr...&gt;"/>
          </base>
        </struct>
      </template>
      <template>
        <tparam name="Expr" class="type"/>
        <struct name="derived_quantity_spec_impl" id="dK90yYd1DbZiixoVR6le5CoEeq4=">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="492" class="def"/>
          <base>
            <type id="ziTiDiHdPWTUlvE4mFSVZiorZf0=" name="quantity_spec_interface"/>
          </base>
          <base>
            <type id="M26cvPSimTpf9F39mM55q2XNs/w=" name="expr_fractions&lt;dimensionless, Expr...&gt;"/>
          </base>
          <namespace-alias name="_base_" id="kXL6Al697vQR8y+T/X0igGo2G5o=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="501"/>
            <type id="M26cvPSimTpf9F39mM55q2XNs/w=" name="expr_fractions&lt;dimensionless, Expr...&gt;"/>
          </namespace-alias>
          <namespace-alias name="_base_type_" id="NCFVM5SCRla+OowceJ+z8mmSJ7U=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="500"/>
            <type id="dK90yYd1DbZiixoVR6le5CoEeq4=" name="derived_quantity_spec_impl"/>
          </namespace-alias>
          <variable name="character" id="tgamrT0zr7fRRG91K+DXDmNqSdM=" default="detail::derived_quantity_character(typename _base_::_num_{}, typename _base_::_den_{})">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="505" class="def"/>
            <attr id="storage-class" name="static" value="2"/>
            <attr id="is-inline"/>
            <attr id="is-constexpr"/>
            <type id="fUIg3fDfqV03756UYVJwtU6yegQ=" name="quantity_character"/>
          </variable>
          <variable name="dimension" id="K0xdnLa8eD5BT3f0h+xXdi/TLfc=" default="detail::expr_map&lt;to_dimension, derived_dimension, struct dimension_one&gt;(_base_{})">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="503" class="def"/>
            <attr id="storage-class" name="static" value="2"/>
            <attr id="is-inline"/>
            <attr id="is-constexpr"/>
            <type class="auto" keyword="auto" constraint="Dimension">
            </type>
          </variable>
        </struct>
      </template>
      <template>
        <tparam name="Expr" class="type"/>
        <struct name="derived_unit_impl" id="zOgqWX81FVkv6q7YjbZXvteLO+s=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="465" class="def"/>
          <base>
            <type id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=" name="detail::unit_interface"/>
          </base>
          <base>
            <type id="M26cvPSimTpf9F39mM55q2XNs/w=" name="detail::expr_fractions&lt;one, Expr...&gt;"/>
          </base>
          <namespace-alias name="_base_type_" id="vFEOjWWVPNNZlXxry4X8FjUmT0o=">
            <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="469"/>
            <type id="zOgqWX81FVkv6q7YjbZXvteLO+s=" name="derived_unit_impl"/>
          </namespace-alias>
        </struct>
      </template>
      <struct name="dimension_interface" id="ABTctrJzDEy/6RtVFRbUgEd5heg=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="68" class="def"/>
      </struct>
      <template>
        <tparam name="OneType" class="type"/>
        <tparam name="Ts" class="type"/>
        <struct name="expr_fractions" id="M26cvPSimTpf9F39mM55q2XNs/w=">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="368" class="def"/>
          <base>
            <type class="decltype" operand="expr_fractions_impl&lt;OneType, type_list&lt;Ts...&gt;&gt;()">
            </type>
          </base>
          <doc>
            <brief>
              <text>Divides expression template spec to numerator and denominator parts</text>
            </brief>
          </doc>
        </struct>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <struct name="expr_type_impl" id="ujR6tLhQJ+3XjHEQRuwo4lYKqFA=">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="126" class="def"/>
          <base>
            <type id="tHoyPPZ2rx6Fuejp2b3htamAkRE=" name="std::type_identity&lt;T&gt;"/>
          </base>
        </struct>
      </template>
      <struct name="point_origin_interface" id="FqnVPR7/CZHvaBukul7xMvjiu4M=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="65" class="def"/>
      </struct>
      <template>
        <tparam name="U" class="type"/>
        <tparam class="constant" type="bool" default="requires { U::_point_origin_; }"/>
        <struct name="propagate_point_origin" id="Nw3t6j2638Lm95hB4GuTNS45n8A=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="220" class="def"/>
        </struct>
      </template>
      <struct name="quantity_spec_interface" id="ziTiDiHdPWTUlvE4mFSVZiorZf0=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="206" class="def"/>
        <base>
          <type id="5w4mtY7IhqY1xtt9Fo9IuOBTr0U=" name="quantity_spec_interface_base"/>
        </base>
        <template requires="(mp_units::explicitly_convertible(Q::quantity_spec, Self{}))">
          <tparam name="Self" class="type"/>
          <tparam name="FwdQ" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function name="operator()" id="Am38VXYL53s6wCO0aRAQoWQuqzc=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="214" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Quantity">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
          </function>
        </template>
        <template>
          <tparam name="Self" class="type"/>
          <tparam name="U" class="type"/>
          <function name="operator[]" id="Bf1Vtuql+zma6iodreFCLaVVGSQ=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="208" class="def"/>
            <attr id="constexpr-kind" name="consteval" value="2"/>
            <attr id="operator" name="subs" value="43"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Reference">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
      </struct>
      <struct name="quantity_spec_interface_base" id="5w4mtY7IhqY1xtt9Fo9IuOBTr0U=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="179" class="def"/>
      </struct>
      <struct name="ratio" id="PbCU1JgTNy3V59F7kRQlpJEUVEo=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="68" class="def"/>
        <doc>
          <brief>
            <text>Provides compile-time rational arithmetic support.</text>
          </brief>
          <para>
            <text>This class is really similar to </text>
            <mono>std::ratio.</mono>
            <text> An important difference is the fact that the objects of that class are used as class NTTPs rather then a type template parameter kind.</text>
          </para>
        </doc>
      </struct>
      <template>
        <tparam name="M" class="constant" type="UnitMagnitude auto"/>
        <tparam name="U" class="type"/>
        <struct name="scaled_unit_impl" id="G5oyU/96M6P9saKM7jUG3gbkLzQ=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="228" class="def"/>
          <base>
            <type id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=" name="detail::unit_interface"/>
          </base>
          <base>
            <type id="Nw3t6j2638Lm95hB4GuTNS45n8A=" name="detail::propagate_point_origin&lt;U&gt;"/>
          </base>
          <namespace-alias name="_base_type_" id="Sb77QidxdYE2JaHzAVTGh9XcObM=">
            <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="230"/>
            <type id="G5oyU/96M6P9saKM7jUG3gbkLzQ=" name="scaled_unit_impl"/>
          </namespace-alias>
          <variable name="_mag_" id="MHzCT9yHP+tnn8D4L9x5G5Biuak=" default="M">
            <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="231" class="def"/>
            <attr id="storage-class" name="static" value="2"/>
            <attr id="is-inline"/>
            <attr id="is-constexpr"/>
            <type class="auto" keyword="auto" constraint="UnitMagnitude">
            </type>
          </variable>
          <variable name="_reference_unit_" id="PGwLZueb/N8O9lIzrrfNzjGeww8=" default="{}">
            <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="232" class="def"/>
            <attr id="storage-class" name="static" value="2"/>
            <attr id="is-inline"/>
            <attr id="is-constexpr"/>
            <type name="U"/>
          </variable>
        </struct>
      </template>
      <template>
        <tparam name="Ts" class="type"/>
        <struct name="type_list" id="R7/eGAWQ4PeHhXOyIy/igYfVwZc=">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="60" class="def"/>
          <doc>
            <brief>
              <text>Type list type used by the expression template framework</text>
            </brief>
            <tparam name="Ts">
              <text>The list of types</text>
            </tparam>
          </doc>
        </struct>
      </template>
      <struct name="unit_interface" id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="145" class="def"/>
      </struct>
      <template>
        <tparam name="T" class="type"/>
        <struct name="value_type_impl" id="HrGTu3+19HFfKLDdW0zsUwgWYl4=">
          <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="111" class="def"/>
        </struct>
      </template>
      <template>
        <tparam name="Lhs" class="type"/>
        <tparam name="Rhs" class="type"/>
        <function name="equivalent" id="9OTQPVBsGNEO2WSqVYtyG6Vs1HM=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="207" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type name="Lhs"/>
          </param>
          <param name="rhs">
            <type name="Rhs"/>
          </param>
        </function>
      </template>
      <function name="operator*" id="ywde54uut7Ec6McvW81SBPMjnSM=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="97" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Multiplication operator</text>
          </brief>
          <returns>
            <text>Provides compile-time rational arithmetic support.</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="Lhs" class="type"/>
        <tparam name="Rhs" class="type"/>
        <function name="operator*" id="6xZFjgISpYinycD7Yvus8y0bxks=">
          <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="69" class="def"/>
          <attr id="is-deleted"/>
          <attr id="is-deleted-as-written"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <attr id="operator" name="star" value="7"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantitySpec">
            </type>
          </return>
          <param name="lhs">
            <type name="Lhs"/>
          </param>
          <param name="rhs">
            <type name="Rhs"/>
          </param>
          <doc>
            <brief>
              <mono>scaled_unit</mono>
              <text> specializations have priority in this operation. This means that the library framework prevents passing it as an element to the </text>
              <mono>derived_unit</mono>
              <text>. In such case only the reference unit is passed to the derived unit and the magnitude remains outside forming another scaled unit as a result of the operation.</text>
            </brief>
            <para>
              <text>Multiplication by </text>
              <mono>1</mono>
              <text> returns the same unit, otherwise </text>
              <mono>scaled_unit</mono>
              <text> is being returned.</text>
            </para>
            <param name="lhs">
              <text>The left operand</text>
            </param>
            <param name="rhs">
              <text>The right operand</text>
            </param>
          </doc>
        </function>
      </template>
      <template requires="requires(T t, U u) { t * u; }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator*" id="LcgviRaeYEjPUYTET/+32NJh9Es=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="82" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="star" value="7"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type name="T" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <template requires="requires(T t, U u) { t * u; }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator*" id="tp8C4Lhx7qWJHrvk1Z6NJ86IyCo=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="74" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="star" value="7"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="U" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <function name="operator+" id="1bSeu9QstfgiOrSiS/0WbPLfWpk=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="90" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Addition operator</text>
          </brief>
          <returns>
            <text>Provides compile-time rational arithmetic support.</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template requires="requires(T t, U u) { t + u; }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator+" id="INsCOz53XfNSRlExULM/AvmSRNk=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="56" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <template>
        <tparam name="PO" class="type"/>
        <tparam name="FwdQ" class="type"/>
        <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
        <function name="operator+" id="E3yyq6Oh+dhWXslPTThwGIanGEk=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="66" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityPoint">
            </type>
          </return>
          <param name="po">
            <type name="PO"/>
          </param>
          <param name="q">
            <type class="rvalue-reference">
              <pointee-type name="FwdQ"/>
            </type>
          </param>
        </function>
      </template>
      <template>
        <tparam name="FwdQ" class="type"/>
        <tparam name="PO" class="type"/>
        <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
        <function name="operator+" id="e7oiOyVb15Hpbmzzpm8TPAkoKP0=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="72" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityPoint">
            </type>
          </return>
          <param name="q">
            <type class="rvalue-reference">
              <pointee-type name="FwdQ"/>
            </type>
          </param>
          <param name="po">
            <type name="PO"/>
          </param>
        </function>
      </template>
      <function name="operator-" id="QBJn9nvxCRUwZ3zVyeVmdeOeEkA=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="88" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </return>
        <param name="r">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Unary minus operator</text>
          </brief>
          <returns>
            <text>Provides compile-time rational arithmetic support.</text>
          </returns>
          <param name="r">
            <text>The operand</text>
          </param>
        </doc>
      </function>
      <function name="operator-" id="Y04ZXNkY6kfATw8j388g9z75tD0=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="95" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Subtraction operator</text>
          </brief>
          <returns>
            <text>Provides compile-time rational arithmetic support.</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template requires="ReferenceOf&lt;MP_UNITS_NONCONST_TYPE(Q::reference), PO::_quantity_spec_&gt;">
        <tparam name="PO" class="type"/>
        <tparam name="Q" class="type"/>
        <function name="operator-" requires="requires { -q; }" id="C6KSTJ1ynid/Kt7zhQzE605laq0=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="78" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityPoint">
            </type>
          </return>
          <param name="po">
            <type name="PO"/>
          </param>
          <param name="q">
            <type class="lvalue-reference">
              <pointee-type name="Q" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <template requires="QuantitySpecOf&lt;MP_UNITS_NONCONST_TYPE(PO1::_quantity_spec_), PO2::_quantity_spec_&gt; &amp;&amp;
             (is_derived_from_specialization_of_v&lt;PO1, relative_point_origin&gt; ||
              is_derived_from_specialization_of_v&lt;PO2, relative_point_origin&gt;)">
        <tparam name="PO1" class="type"/>
        <tparam name="PO2" class="type"/>
        <function name="operator-" id="aKCZOSz/GDvxPtQZCsc2sP01f4A=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="86" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="Quantity">
            </type>
          </return>
          <param name="po1">
            <type name="PO1"/>
          </param>
          <param name="po2">
            <type name="PO2"/>
          </param>
        </function>
      </template>
      <template requires="requires(T t, U u) { t - u; }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator-" id="Req/rRdxFXFSRJnUBMJjmSXrPQ8=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="65" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <function name="operator/" id="Bsr+G7tX9sa1yZHFAjMxjZbcxY0=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="105" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Division operator</text>
          </brief>
          <returns>
            <text>Provides compile-time rational arithmetic support.</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="Lhs" class="type"/>
        <tparam name="Rhs" class="type"/>
        <function name="operator/" id="quK1qgkoO6zqvMgQ+/+GpvKpBco=">
          <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="75" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <attr id="operator" name="slash" value="8"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantitySpec">
            </type>
          </return>
          <param name="lhs">
            <type name="Lhs"/>
          </param>
          <param name="rhs">
            <type name="Rhs"/>
          </param>
          <doc>
            <brief>
              <mono>scaled_unit</mono>
              <text> specializations have priority in this operation. This means that the library framework prevents passing it as an element to the </text>
              <mono>derived_unit</mono>
              <text>. In such case only the reference unit is passed to the derived unit and the magnitude remains outside forming another scaled unit as a result of the operation.</text>
            </brief>
            <para>
              <text>Returns the result of multiplication with an inverse unit.</text>
            </para>
            <param name="lhs">
              <text>The left operand</text>
            </param>
            <param name="rhs">
              <text>The right operand</text>
            </param>
          </doc>
        </function>
      </template>
      <template requires="requires(T t, U u) { t / u; }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator/" id="+q8/W5LQ0UQCsigMCs4PYGNld/k=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="89" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="slash" value="8"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type name="U" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <template requires="requires(T t, U u, decltype(t * u) v) {
      t * u;
      v + v;
    }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="scalar_product" id="nJvEoDlDnU63QawWTFp+R+d359w=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="104" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <template requires="requires(T t, U u, decltype(t * u) v) {
      t * u;
      v - v;
    }">
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="vector_product" id="bKP5UgF6uLUklq0caUzw/F788TE=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="115" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto">
            </type>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
      </template>
      <function name="operator==" id="lG9lWTp0f3PVhPTg3GK/Yw2K6R8=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="85" class="def"/>
        <attr id="is-defaulted"/>
        <attr id="is-explicitly-defaulted"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="T" class="type"/>
        <tparam name="U" class="type"/>
        <function name="operator==" id="Iu0cEQL9YsOFb7IOeSz6hwhudIo=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="97" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="eq" value="28"/>
          <attr id="nodiscard"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="lhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;T&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="rhs">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Equality operator</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if the objects are equal, </text>
              <mono>false</mono>
              <text> otherwise</text>
            </returns>
            <param name="lhs">
              <text>The left operand</text>
            </param>
            <param name="rhs">
              <text>The right operand</text>
            </param>
          </doc>
        </function>
      </template>
      <template>
        <tparam name="Lhs" class="type"/>
        <tparam name="Rhs" class="type"/>
        <function name="operator==" id="2NOuhueAkJf7Tj0xe4u6PlhXB1c=">
          <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="81" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <attr id="operator" name="eq" value="28"/>
          <attr id="nodiscard"/>
          <return>
            <type name="bool"/>
          </return>
          <param name="po1">
            <type name="Lhs"/>
          </param>
          <param name="po2">
            <type name="Rhs"/>
          </param>
          <doc>
            <brief>
              <text>Equality operator</text>
            </brief>
            <returns>
              <mono>true</mono>
              <text> if the objects are equal, </text>
              <mono>false</mono>
              <text> otherwise</text>
            </returns>
            <param name="po1">
              <text>The left operand</text>
            </param>
            <param name="po2">
              <text>The right operand</text>
            </param>
          </doc>
        </function>
      </template>
      <function name="operator&lt;=&gt;" id="22PbJMSeGT0HDu9h+nywB88moz4=">
        <file short-path="mp-units/bits/ratio.h" source-path="src/core/include/mp-units/bits/ratio.h" line="86" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <param name="rhs">
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="ratio"/>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="T" class="type"/>
        <concept name="BaseDimension" id="TebHH9VrCMCu1TtXK30kGimUxJw=" constraint="Dimension&lt;T&gt; &amp;&amp; is_derived_from_specialization_of_v&lt;T, base_dimension&gt;">
          <file short-path="mp-units/framework/dimension_concepts.h" source-path="src/core/include/mp-units/framework/dimension_concepts.h" line="57"/>
          <doc>
            <brief>
              <text>A concept matching all named base dimensions in the library.</text>
            </brief>
            <para>
              <text>Satisfied by all dimension types derived from a specialization of </text>
              <mono>base_dimension</mono>
              <text>.</text>
            </para>
          </doc>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="DerivedQuantitySpec" id="i+5f7MsyS9MXO3ewO/G8HUpJmSU=" constraint="QuantitySpec&lt;T&gt; &amp;&amp;
  (is_specialization_of&lt;T, derived_quantity_spec&gt; ||
   (QuantityKindSpec&lt;T&gt; &amp;&amp; is_specialization_of&lt;MP_UNITS_NONCONST_TYPE(T::_quantity_spec_), derived_quantity_spec&gt;))">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="103"/>
          <doc>
            <brief>
              <text>Concept matching all derived quantity specification types</text>
            </brief>
            <para>
              <text>Satisfied by all </text>
              <mono>derived_quantity_spec</mono>
              <text> specializations.</text>
            </para>
            <para class="note">
              <text>Deriving a strong type from it is considered a logic error and thus is explicitly not supported here.</text>
            </para>
          </doc>
        </concept>
      </template>
      <template>
        <tparam name="Q" class="type"/>
        <concept name="DimensionlessOneQuantity" id="0a1D2amWgmdFeUteZaY13tT6n78=" constraint="Quantity&lt;Q&gt; &amp;&amp; DimensionlessOne&lt;Q::reference&gt;">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="110"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="MagArg" id="4FTfH1qwZUM/zCECkhlOufv+cdc=" constraint="std::integral&lt;T&gt; || is_mag_constant&lt;T&gt;">
          <file short-path="mp-units/bits/unit_magnitude.h" source-path="src/core/include/mp-units/bits/unit_magnitude.h" line="54"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="NamedQuantitySpec" id="D2Z6xrqrQFQrIbShz/BvEvY1iEY=" constraint="QuantitySpec&lt;T&gt; &amp;&amp; is_derived_from_specialization_of_quantity_spec&lt;T&gt; &amp;&amp; (!QuantityKindSpec&lt;T&gt;)">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="91"/>
          <doc>
            <brief>
              <text>Concept matching all named quantity specification types</text>
            </brief>
            <para>
              <text>Satisfied by all types that derive from </text>
              <mono>quantity_spec</mono>
              <text>.</text>
            </para>
          </doc>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="QSProperty" id="uLr2QTpX+eHmI67ToPN3+xJMUrI=" constraint="(!QuantitySpec&lt;T&gt;)">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="238"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="QuantityKindSpec" id="EGwT9LuroH82bpiCumBmsCNCBV0=" constraint="QuantitySpec&lt;T&gt; &amp;&amp; is_specialization_of&lt;T, kind_of_&gt;">
          <file short-path="mp-units/framework/quantity_spec_concepts.h" source-path="src/core/include/mp-units/framework/quantity_spec_concepts.h" line="46"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <tparam name="V" class="constant" type="auto"/>
        <concept name="SameAbsolutePointOriginAs" id="af7aImu5yCE9ASHkFT3bCBUifxI=" constraint="PointOrigin&lt;T&gt; &amp;&amp; PointOrigin&lt;MP_UNITS_REMOVE_CONST(decltype(V))&gt; &amp;&amp; same_absolute_point_origins(T{}, V)">
          <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="112"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="Scalar" id="o2QqBJiQBMYrdpBKyu1gpW8tu20=" constraint="RealScalar&lt;T&gt; || ComplexScalar&lt;T&gt;">
          <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="210"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <tparam name="Rep" class="type"/>
        <concept name="ScalarValuePreservingTo" id="WEyGd3dwalL9KbmCP3r87PnLW7A=" constraint="(!Quantity&lt;T&gt;) &amp;&amp; Scalar&lt;T&gt; &amp;&amp; is_value_preserving&lt;T, Rep&gt;">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="102"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="SymbolicArg" id="lqSPh4UkJPhiAPNGJDI/Fun34rU=" constraint="(!std::is_const_v&lt;T&gt;) &amp;&amp; (!std::is_reference_v&lt;T&gt;)">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="47"/>
        </concept>
      </template>
      <template>
        <tparam name="T" class="type"/>
        <concept name="SymbolicConstant" id="3doM93s7wQdgyq0GAlBPnRvNTqs=" constraint="SymbolicArg&lt;T&gt; &amp;&amp; std::is_empty_v&lt;T&gt; &amp;&amp; std::is_final_v&lt;T&gt; &amp;&amp;
                           std::is_trivially_default_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_copy_constructible_v&lt;T&gt; &amp;&amp;
                           std::is_trivially_move_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_destructible_v&lt;T&gt;">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="50"/>
        </concept>
      </template>
      <template>
        <tparam name="U1" class="type"/>
        <tparam name="U2" class="constant" type="auto"/>
        <concept name="UnitConvertibleTo" id="ncTZ8lzXCBMdK03NkXfA8DO3F+4=" constraint="Unit&lt;U1&gt; &amp;&amp; Unit&lt;MP_UNITS_REMOVE_CONST(decltype(U2))&gt; &amp;&amp;
  ((U1{} == U2) ||
   ((!MP_UNITS_ASSOCIATED_UNIT_T(U1) || !MP_UNITS_ASSOCIATED_UNIT_T(MP_UNITS_REMOVE_CONST(decltype(U2))) ||
     UnitsOfCompatibleQuantities&lt;U1{}, U2&gt;) &amp;&amp;
    ConvertibleUnits&lt;U1{}, U2&gt;))">
          <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="135"/>
        </concept>
      </template>
      <template>
        <tparam name="U" class="type"/>
        <tparam name="QS" class="constant" type="auto"/>
        <concept name="WeakUnitOf" id="WS/Ir/Koi7PugJ6eL3VsxvoOWi4=" constraint="Unit&lt;U&gt; &amp;&amp; QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(QS))&gt; &amp;&amp; ((!AssociatedUnit&lt;U&gt;) || UnitOf&lt;U, QS&gt;)">
          <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="116"/>
        </concept>
      </template>
    </namespace>
    <template>
      <tparam name="B" class="constant" type="bool"/>
      <tparam name="T" class="type"/>
      <tparam name="F" class="type"/>
      <namespace-alias name="conditional" id="XNAn82aOSAtk+iqn+nzr5njUzoE=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="59"/>
        <type name="detail::conditional_impl&lt;B&gt;::type&lt;T, F&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <namespace-alias name="expr_type" id="YKMxawya6iNtNtsujsW0kCQmROs=">
        <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="134"/>
        <type name="detail::expr_type_impl&lt;T&gt;::type"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <namespace-alias name="fixed_string" id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="280"/>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;char, N&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <namespace-alias name="fixed_u16string" id="sM44GvLNHrTSQRcpJE/p6xrluzQ=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="284"/>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;char16_t, N&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <namespace-alias name="fixed_u32string" id="jcLtbvo3emw1MYTxOb5TW24XAkQ=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="286"/>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;char32_t, N&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <namespace-alias name="fixed_u8string" id="EKxgkugk3wT5zsZHALMguwAyC9M=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="282"/>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;char8_t, N&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <namespace-alias name="fixed_wstring" id="zdZiDyhptnx92TY8d8m7rfZIhcQ=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="288"/>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;wchar_t, N&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="U" class="type"/>
      <namespace-alias name="is_same" id="5T2Sc+GJ0fV+DFf8fDalU41ZC2w=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="69"/>
        <type id="kLNbIab69vEJlNlBmYow1fwZjI4=" name="std::bool_constant&lt;is_same_v&lt;T, U&gt;&gt;"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <namespace-alias name="quantity_values" id="/FYQqLJFVXlTGV6lNzoAVFBidvU=">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="136"/>
        <type id="kQy/El1WAc19H5z2Enjtb3LwEl4=" name="representation_values&lt;Rep&gt;"/>
      </namespace-alias>
    </template>
    <namespace-alias name="text_encoding" id="NAu+zXe8HQM9ItMmCZeZ+x7lS/Q=">
      <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="56"/>
      <type id="OkYR13gJx4Gk7BZVu8mqIVDevuA=" name="character_set"/>
    </namespace-alias>
    <template requires="std::is_object_v&lt;T&gt;">
      <tparam name="T" class="type"/>
      <namespace-alias name="value_type_t" id="tQ5FMlJF8ju0VmOIgf/jJ6J+nEU=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="124"/>
        <type name="detail::value_type_impl&lt;T&gt;::type"/>
      </namespace-alias>
    </template>
    <template requires="(!std::is_pointer_v&lt;T&gt; &amp;&amp; !std::is_array_v&lt;T&gt;) &amp;&amp;
            requires { typename std::indirectly_readable_traits&lt;T&gt;::value_type; }">
      <tparam name="T" class="type"/>
      <namespace-alias name="wrapped_type_t" id="CmfSortEmt6GLewgXejHJUfAg6k=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="104"/>
        <type name="std::indirectly_readable_traits&lt;T&gt;::value_type"/>
      </namespace-alias>
    </template>
    <template>
      <tparam name="QS" class="constant" type="QuantitySpec auto"/>
      <struct name="absolute_point_origin" id="/k6QE5ju7rzbNu2vzELUDbY3IHU=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="120" class="def"/>
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="35"/>
        <base>
          <type id="FqnVPR7/CZHvaBukul7xMvjiu4M=" name="detail::point_origin_interface"/>
        </base>
        <variable name="_quantity_spec_" id="z629HAjAx4Lj+XIdxru1d+KqNKo=" default="QS">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="122" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <struct name="base_dimension" id="Riqu0DiwrLER8iWREuLt3XqCIgc=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="118" class="def"/>
        <file short-path="mp-units/framework/dimension_concepts.h" source-path="src/core/include/mp-units/framework/dimension_concepts.h" line="47"/>
        <base>
          <type id="ABTctrJzDEy/6RtVFRbUgEd5heg=" name="detail::dimension_interface"/>
        </base>
        <doc>
          <brief>
            <text>A dimension of a base quantity</text>
          </brief>
          <para>
            <text>Base quantity is a quantity in a conventionally chosen subset of a given system of quantities, where no quantity in the subset can be expressed in terms of the other quantities within that subset. They are referred to as being mutually independent since a base quantity cannot be expressed as a product of powers of the other base quantities.</text>
          </para>
          <para>
            <mono>Symbol</mono>
            <text> template parameter is an unique identifier of the base dimension. The same identifiers can be multiplied and divided which will result with an adjustment of its factor in an exponent of a </text>
            <mono>derived_dimension</mono>
            <text> (in case of zero the dimension will be simplified and removed from further analysis of current expresion).</text>
          </para>
          <para>
            <text>User should derive a strong type from this class template rather than use it directly in the source code. For example:</text>
          </para>
          <code>
            <text>{.cpp}
 inline constexpr struct dim_length final : base_dimension&lt;&quot;L&quot;&gt; {} dim_length;
 inline constexpr struct dim_time final : base_dimension&lt;&quot;T&quot;&gt; {} dim_time;
 inline constexpr struct dim_mass final : base_dimension&lt;&quot;M&quot;&gt; {} dim_mass;</text>
          </code>
          <para class="note">
            <text>A common convention in this library is to assign the same name for a type and an object of this type. Besides defining them user never works with the dimension types in the source code. All operations are done on the objects. Contrarily, the dimension types are the only one visible in the compilation errors. Having them of the same names improves user experience and somehow blurs those separate domains.</text>
          </para>
          <tparam name="Symbol">
            <text>an unique identifier of the base dimension used to provide dimensional analysis support</text>
          </tparam>
        </doc>
        <variable name="_symbol_" id="POv53ESlsxeKQyR0YuLMiTNP12k=" default="Symbol">
          <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="120" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
          <doc>
            <brief>
              <text>Unique base dimension identifier</text>
            </brief>
          </doc>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="N" class="constant" type="std::size_t"/>
      <class name="basic_fixed_string" id="il08w7t9FJtOqxm3KaXMQ5bTy94=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="64" class="def"/>
        <friend id="5mQ0miTnQ1aGOduuzpFHF+i97bA=">
          <befriended id="5mQ0miTnQ1aGOduuzpFHF+i97bA="/>
        </friend>
        <friend id="WbaX6abZL2tuhkVIAZgcK3SQwS8=">
          <befriended id="WbaX6abZL2tuhkVIAZgcK3SQwS8="/>
        </friend>
        <friend id="3uqdPGmKAQOGJPGGAvrudpj0l3s=">
          <befriended id="3uqdPGmKAQOGJPGGAvrudpj0l3s="/>
        </friend>
        <friend id="PVDbj2p3oNOa3X0H0FwD69YSiV8=">
          <befriended id="PVDbj2p3oNOa3X0H0FwD69YSiV8="/>
        </friend>
        <friend id="Mlpl8Nm4o6jNXdczA/INKzQnTbI=">
          <befriended id="Mlpl8Nm4o6jNXdczA/INKzQnTbI="/>
        </friend>
        <friend id="ZzcrGHWQLcZpFDHyTCqdM1qSu/Y=">
          <befriended id="ZzcrGHWQLcZpFDHyTCqdM1qSu/Y="/>
        </friend>
        <friend id="7F/eVBVnneFgJR1HgS9rQi6It44=">
          <befriended id="7F/eVBVnneFgJR1HgS9rQi6It44="/>
        </friend>
        <friend id="eltf+3ZQ2nwdLUMS5CJH0mE7Mck=">
          <befriended id="eltf+3ZQ2nwdLUMS5CJH0mE7Mck="/>
        </friend>
        <friend id="41lN7xWQTgIlEGeDmeocuk3sScI=">
          <befriended id="41lN7xWQTgIlEGeDmeocuk3sScI="/>
        </friend>
        <friend id="5gsE52VI7hwCqKsLOd6s0weoOus=">
          <befriended id="5gsE52VI7hwCqKsLOd6s0weoOus="/>
        </friend>
        <doc>
          <brief>
            <text>A compile-time fixed string</text>
          </brief>
          <tparam name="CharT">
            <text>Character type to be used by the string</text>
          </tparam>
          <tparam name="N">
            <text>The size of the string</text>
          </tparam>
        </doc>
        <namespace-alias name="const_iterator" id="J0fmyYN4CGlTdsSdGI4wKTWu908=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="75"/>
          <type class="pointer">
            <pointee-type id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=" name="value_type" cv-qualifiers="const"/>
          </type>
        </namespace-alias>
        <namespace-alias name="const_pointer" id="TyP/EhgXg7m86fsob5BNVGzNwu8=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="72"/>
          <type class="pointer">
            <pointee-type id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=" name="value_type" cv-qualifiers="const"/>
          </type>
        </namespace-alias>
        <namespace-alias name="const_reference" id="JJoL7XoUw6rsDJbFD8y6ZVM+lQg=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="74"/>
          <type class="lvalue-reference">
            <pointee-type id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=" name="value_type" cv-qualifiers="const"/>
          </type>
        </namespace-alias>
        <namespace-alias name="const_reverse_iterator" id="HWtNv/zaZx6hvS3zf62i18CSVIM=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="77"/>
          <type id="570Q1l1MUvO3hJraLUThdr4GLPI=" name="std::reverse_iterator&lt;const_iterator&gt;"/>
        </namespace-alias>
        <namespace-alias name="difference_type" id="qVkvQ+SMI0hQ5OHq/+QyNxqA+qU=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="80"/>
          <type id="le0EztUxrip4+7uYlLBiRcX6nlw=" name="std::ptrdiff_t"/>
        </namespace-alias>
        <namespace-alias name="iterator" id="JqTJNZWuHpwVi7pARoI1xN2TXPE=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="76"/>
          <type id="J0fmyYN4CGlTdsSdGI4wKTWu908=" name="const_iterator"/>
        </namespace-alias>
        <namespace-alias name="pointer" id="/S4RpCF+pZh+IGWjzfBB8FcOCCc=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="71"/>
          <type class="pointer">
            <pointee-type id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=" name="value_type"/>
          </type>
        </namespace-alias>
        <namespace-alias name="reference" id="BXatClsi5I2oiTEAH2CuLER4pzY=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="73"/>
          <type class="lvalue-reference">
            <pointee-type id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=" name="value_type"/>
          </type>
        </namespace-alias>
        <namespace-alias name="reverse_iterator" id="XqeZDgyxmfNwX7PdNCvpMqFiw0w=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="78"/>
          <type id="HWtNv/zaZx6hvS3zf62i18CSVIM=" name="const_reverse_iterator"/>
        </namespace-alias>
        <namespace-alias name="size_type" id="hjdIc2C+sVdQPytHeHQwDAzImbk=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="79"/>
          <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
        </namespace-alias>
        <namespace-alias name="value_type" id="Ysz89kxGFpWb0KHvdLM2zLRqLxg=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="70"/>
          <type name="CharT"/>
        </namespace-alias>
        <function class="constructor" name="basic_fixed_string" exception-spec="noexcept" id="goidp2RqHrQicL+jxz+3lm3Q6Tk=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="112" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy constructor</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="basic_fixed_string" exception-spec="noexcept" explicit-spec="explicit(false)" id="/KihM2cJQ6mxyCuyR9CD5bWuwBs=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="90" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <param name="txt">
            <type class="lvalue-reference">
              <pointee-type class="array" bounds="N + 1">
                <element-type name="CharT" cv-qualifiers="const"/>
              </pointee-type>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from </text>
              <mono>CharT</mono>
            </brief>
            <param name="txt">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <template requires="(sizeof...(Chars) == N) &amp;&amp; (... &amp;&amp; !std::is_pointer_v&lt;Chars&gt;)">
          <tparam name="Chars" class="type"/>
          <function class="constructor" name="basic_fixed_string" exception-spec="noexcept" explicit-spec="explicit" id="Lv3VPfOqWwHo9J4CglXG5bSDs1E=">
            <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="83" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="chars">
              <type is-pack="1" name="Chars"/>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>Chars</mono>
              </brief>
              <param name="chars">
                <text>The object to construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::same_as&lt;std::ranges::range_value_t&lt;R&gt;, CharT&gt;">
          <tparam name="R" class="type"/>
          <function class="constructor" name="basic_fixed_string" id="OtkXzd57lhrGVZ/KzcgwAMelMjw=">
            <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="104" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param>
              <type id="E+n5yg7xWHA6p+48rPt8RyN0Gkk=" name="std::from_range_t"/>
            </param>
            <param name="r">
              <type class="rvalue-reference">
                <pointee-type name="R"/>
              </type>
            </param>
          </function>
        </template>
        <template requires="std::same_as&lt;std::iter_value_t&lt;It&gt;, CharT&gt;">
          <tparam name="It" class="type"/>
          <tparam name="S" class="type"/>
          <function class="constructor" name="basic_fixed_string" id="WQZZS1/RzneurG2/rgPuAXALKkk=">
            <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="96" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="begin">
              <type name="It"/>
            </param>
            <param name="end">
              <type name="S"/>
            </param>
          </function>
        </template>
        <function name="operator=" exception-spec="noexcept" id="EWREPdCLg+GW/murdG1VdrPdgpk=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="113" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to copy assign from</text>
            </param>
          </doc>
        </function>
        <function name="at" id="5AuAhKk3Ze5CQmBi8QrXBrTsP/k=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="139" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="JJoL7XoUw6rsDJbFD8y6ZVM+lQg=" name="const_reference"/>
          </return>
          <param name="pos">
            <type id="hjdIc2C+sVdQPytHeHQwDAzImbk=" name="size_type"/>
          </param>
        </function>
        <function name="back" id="Vw9V7pdpstEhAi1AAA6zSxm+Eg8=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="151" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="JJoL7XoUw6rsDJbFD8y6ZVM+lQg=" name="const_reference"/>
          </return>
        </function>
        <function name="begin" exception-spec="noexcept" id="KZbs5HNJrozVXXRtcGiltVGoJLU=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="116" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="J0fmyYN4CGlTdsSdGI4wKTWu908=" name="const_iterator"/>
          </return>
        </function>
        <function name="c_str" exception-spec="noexcept" id="VUxd1f4zZtASw5ypLRdC5QctF4A=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="161" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="TyP/EhgXg7m86fsob5BNVGzNwu8=" name="const_pointer"/>
          </return>
        </function>
        <function name="cbegin" exception-spec="noexcept" id="EC6nnhENU08jlWsCnrwIC3m1dgQ=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="118" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="J0fmyYN4CGlTdsSdGI4wKTWu908=" name="const_iterator"/>
          </return>
        </function>
        <function name="cend" exception-spec="noexcept" id="e5CFPLg9qe3XZVzA/IILHrc/UaU=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="119" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="J0fmyYN4CGlTdsSdGI4wKTWu908=" name="const_iterator"/>
          </return>
        </function>
        <function name="crbegin" exception-spec="noexcept" id="PFaAFoq3rlCUlIN4BqdqzvvbclM=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="122" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="HWtNv/zaZx6hvS3zf62i18CSVIM=" name="const_reverse_iterator"/>
          </return>
        </function>
        <function name="crend" exception-spec="noexcept" id="moLBabvvctwUbabF79GbLsnOzPM=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="123" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="HWtNv/zaZx6hvS3zf62i18CSVIM=" name="const_reverse_iterator"/>
          </return>
        </function>
        <function name="data" exception-spec="noexcept" id="7HGaSyX6sqzjb6kXTW2wHWPF1c0=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="162" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="TyP/EhgXg7m86fsob5BNVGzNwu8=" name="const_pointer"/>
          </return>
        </function>
        <function name="end" exception-spec="noexcept" id="zaR3dMroSncReh8CtrxVtsfoF1A=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="117" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="J0fmyYN4CGlTdsSdGI4wKTWu908=" name="const_iterator"/>
          </return>
        </function>
        <function name="front" id="osFhh5vO8BFcdHNWojpC7XgQx1g=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="146" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="JJoL7XoUw6rsDJbFD8y6ZVM+lQg=" name="const_reference"/>
          </return>
        </function>
        <function name="operator[]" id="GMo8YBA7wDdws0nu3a/ZvIvTKds=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="132" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="subs" value="43"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="JJoL7XoUw6rsDJbFD8y6ZVM+lQg=" name="const_reference"/>
          </return>
          <param name="pos">
            <type id="hjdIc2C+sVdQPytHeHQwDAzImbk=" name="size_type"/>
          </param>
        </function>
        <function name="rbegin" exception-spec="noexcept" id="QKg0OZ1aI1U+floOFQuXgIRCeL0=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="120" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="HWtNv/zaZx6hvS3zf62i18CSVIM=" name="const_reverse_iterator"/>
          </return>
        </function>
        <function name="rend" exception-spec="noexcept" id="K++Ye21ymXpZahksNbG145XTV28=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="121" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="HWtNv/zaZx6hvS3zf62i18CSVIM=" name="const_reverse_iterator"/>
          </return>
        </function>
        <function name="swap" exception-spec="noexcept" id="tKNNPsRm7lxRPP8QqdiJ/Rau/A4=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="158" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="s">
            <type class="lvalue-reference">
              <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string"/>
            </type>
          </param>
        </function>
        <function name="view" exception-spec="noexcept" id="z+6l11E/rlwJwnNT5BtTJIdWGUg=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="163" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="oSFJcVc2/y4UVv2i2KJmYkq0irI=" name="std::basic_string_view&lt;CharT&gt;"/>
          </return>
        </function>
        <function class="conversion" name="operator basic_string_view&lt;&gt;" exception-spec="noexcept" explicit-spec="explicit(false)" id="Eui8/yQBh4nPwsQn6o1I9vX9JgU=">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="168" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="oSFJcVc2/y4UVv2i2KJmYkq0irI=" name="std::basic_string_view&lt;CharT&gt;"/>
          </return>
          <doc>
            <brief>
              <text>Conversion to </text>
              <mono>basic_string_view</mono>
            </brief>
            <returns>
              <text>The object converted to </text>
              <mono>basic_string_view</mono>
            </returns>
          </doc>
        </function>
        <variable name="data_" id="IPjfps70Y561KvqbILQWtgj4swQ=" default="{}">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="67"/>
          <type class="array" bounds="N + 1">
            <element-type name="CharT"/>
          </type>
        </variable>
        <variable name="empty" id="21yFApAqZYSDzSNDHkrPUlapIEM=" default="{}">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="129" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="kLNbIab69vEJlNlBmYow1fwZjI4=" name="std::bool_constant&lt;N == 0&gt;"/>
        </variable>
        <variable name="length" id="E5plmrz/rNFA6ptJDBk8vkAc/58=" default="{}">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="127" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="T+8BbX86MwW1bKDBwdrNWQ2+++I=" name="std::integral_constant&lt;size_type, N&gt;"/>
        </variable>
        <variable name="max_size" id="HEFNq6tBOHgOxTsq5OrJO3mTt70=" default="{}">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="128" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="T+8BbX86MwW1bKDBwdrNWQ2+++I=" name="std::integral_constant&lt;size_type, N&gt;"/>
        </variable>
        <variable name="size" id="2cnJQw66AJry0hwanb/ZJ2hEFHM=" default="{}">
          <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="126" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="T+8BbX86MwW1bKDBwdrNWQ2+++I=" name="std::integral_constant&lt;size_type, N&gt;"/>
        </variable>
      </class>
    </template>
    <struct name="binomial_distribution" id="5CaVMCPifPkn3oCZHz78NaAqS2A=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="145" class="def"/>
      <base>
        <type id="eC294zXk/6X00wZJAIZ/f/Z+Uy8=" name="std::binomial_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="OfWKCGWieXN32dDRWovyj9usVL4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="147"/>
        <type id="eC294zXk/6X00wZJAIZ/f/Z+Uy8=" name="std::binomial_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="6t0YyFpnzLy2g0xsWahJpoUInOg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="146"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="binomial_distribution" id="thTbVNV8B5/17JVNaabrzFSSsC8=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="149" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="binomial_distribution" id="wqqtKbdgb7wjkGFxOqS5eC8wV80=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="150" class="def"/>
        <param name="t">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="p">
          <type name="double"/>
        </param>
      </function>
      <function name="max" id="3PlAqYK9DmaKjsRJ56O4dZz/f8w=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="161" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="uxIkgefdNkxbo6ACZ3zqzbp+cQU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="160" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="W8JUCa9Apqv7+owRNRBqmAYLEFA=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="152" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
      <function name="t" id="4mHS1H/cuQbcbjwQKXDansKC6EA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="158" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="binomial_distribution" id="iHaPjplc/yFDmCc6ov4A42xzBIA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="143" class="def"/>
        <base>
          <type id="eC294zXk/6X00wZJAIZ/f/Z+Uy8=" name="std::binomial_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template>
      <tparam name="T" class="type" default="double"/>
      <class name="cartesian_vector" id="iaJD5eCsQMUwszj5unSRWzRxrpY=">
        <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="131" class="def"/>
        <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="50"/>
        <base>
          <type id="BF9GgViqkdhvRk/ivQc/SXdmTvA=" name="detail::cartesian_vector_iface"/>
        </base>
        <friend id="uU69M81j415N+/ovQMheKoO6uuw=">
          <befriended id="uU69M81j415N+/ovQMheKoO6uuw="/>
        </friend>
        <friend id="w0qNz4Px4Q/GcaO4KDMK6Yul8Aw=">
          <befriended id="w0qNz4Px4Q/GcaO4KDMK6Yul8Aw="/>
        </friend>
        <friend id="wSUyRRjmNBcGJm9H8eC6YvOqis0=">
          <befriended id="wSUyRRjmNBcGJm9H8eC6YvOqis0="/>
        </friend>
        <namespace-alias name="value_type" id="hDUZBtgCO/fMsTcgZvYFFUR09wg=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="136"/>
          <type name="T"/>
        </namespace-alias>
        <function class="constructor" name="cartesian_vector" id="EP0P21mZLbRqZP+q0ltoAgctSQU=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="138" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy constructor</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <template requires="std::constructible_from&lt;T, U&gt;">
          <tparam name="U" class="type"/>
          <function class="constructor" name="cartesian_vector" explicit-spec="explicit(!std::convertible_to&lt;U, T&gt;)" id="GlYZbgVLdLN/hZk5WV8VmU3V4Nk=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="150" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Copy constructor</text>
              </brief>
              <param name="other">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="constructor" name="cartesian_vector" id="7KoUEQUelbZan1VL+R8ZXbWm9bA=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="139" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move constructor</text>
            </brief>
            <param name="other">
              <text>The object to move construct from</text>
            </param>
          </doc>
        </function>
        <template requires="std::constructible_from&lt;T, U&gt;">
          <tparam name="U" class="type"/>
          <function class="constructor" name="cartesian_vector" explicit-spec="explicit(!std::convertible_to&lt;U, T&gt;)" id="wqFXapGVSNyVKrmvZn4L2dApT8M=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="157" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="other">
              <type class="rvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Move constructor</text>
              </brief>
              <param name="other">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="(... &amp;&amp; std::constructible_from&lt;T, Args&gt;)">
          <tparam name="Args" class="type"/>
          <function class="constructor" name="cartesian_vector" explicit-spec="explicit(!(... &amp;&amp; std::convertible_to&lt;Args, T&gt;))" id="Q1tpY7G83jikCOCUROJLRIQ0vJQ=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="143" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="args">
              <type class="rvalue-reference" is-pack="1">
                <pointee-type is-pack="1" name="Args"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>Args</mono>
              </brief>
              <param name="args">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator=" id="Xy8Zixtjs+NVPiffUOGssbqFIQM=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="140" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to copy assign from</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="U" class="type"/>
          <function name="operator=" id="e/WgvageVJP4uCspAp2yXC+JFYA=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="165" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Copy assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The object to copy assign from</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator=" id="s6lU1JbSR7Pbk3J3Z/J3rurcvA4=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="141" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
            </type>
          </return>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to move assign from</text>
            </param>
          </doc>
        </function>
        <template>
          <tparam name="U" class="type"/>
          <function name="operator=" id="0k9uergN5rkC8vAX4qsDVw21TkM=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="174" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="other">
              <type class="rvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Move assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The object to move assign from</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="magnitude" requires="treat_as_floating_point&lt;T&gt;" id="9OLTYD9X8KQEXXbeAu7Py4EIccE=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="183" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type name="T"/>
          </return>
        </function>
        <template requires="requires(T t, U u) {
      { t *= u } -&gt; std::same_as&lt;T&amp;&gt;;
    }">
          <tparam name="U" class="type"/>
          <function name="operator*=" id="iKnxkrhiqPuOeNRJ+rjYs0PYqbY=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="233" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="star_eq" value="17"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="value">
              <type class="lvalue-reference">
                <pointee-type name="U" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Multiplication assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="value">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator+" id="YDdN8VtHfkNiSPSqvRkCCW0AD+s=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="203" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
          </return>
          <doc>
            <brief>
              <text>Unary plus operator</text>
            </brief>
            <returns>
              <text>Another instance of the object</text>
            </returns>
          </doc>
        </function>
        <template requires="requires(T t, U u) {
      { t += u } -&gt; std::same_as&lt;T&amp;&gt;;
    }">
          <tparam name="U" class="type"/>
          <function name="operator+=" id="6MxvzEeeOPpQq6p9XR9p6d+Ve74=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="209" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="plus_eq" value="15"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Addition assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator-" id="B8NlElG/wfrQ2lAGUDONVmJQr1A=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="204" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
          </return>
          <doc>
            <brief>
              <text>Unary minus operator</text>
            </brief>
            <returns>
              <text>Another instance of the object</text>
            </returns>
          </doc>
        </function>
        <template requires="requires(T t, U u) {
      { t -= u } -&gt; std::same_as&lt;T&amp;&gt;;
    }">
          <tparam name="U" class="type"/>
          <function name="operator-=" id="nSoEYI6t8FZ7UM8xRBQlh7ne6Pc=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="221" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="minus_eq" value="16"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;U&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Subtraction assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="requires(T t, U u) {
      { t /= u } -&gt; std::same_as&lt;T&amp;&gt;;
    }">
          <tparam name="U" class="type"/>
          <function name="operator/=" id="LVWwwYLrIf3biK+/W5R6WFGK6Iw=">
            <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="245" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="slash_eq" value="18"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
              </type>
            </return>
            <param name="value">
              <type class="lvalue-reference">
                <pointee-type name="U" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Division assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="value">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator[]" id="+Qw8x178Tz+gnC7ZxsJgPbLzZZw=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="200" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="subs" value="43"/>
          <attr id="nodiscard"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type name="T"/>
            </type>
          </return>
          <param name="i">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
        </function>
        <function name="operator[]" id="GEBcr9I6rP5EdOYEWaxWMba+ZG8=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="201" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="subs" value="43"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type name="T" cv-qualifiers="const"/>
            </type>
          </return>
          <param name="i">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
        </function>
        <function name="unit" requires="treat_as_floating_point&lt;T&gt;" id="dvtdiFriFxx5AHS0Bm/bAxD7WBs=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="194" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
          </return>
        </function>
        <variable name="_coordinates_" id="NcK1U1FfjZjeAOt5SHnz89D0J6k=">
          <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="135"/>
          <type class="array" bounds="3">
            <element-type name="T"/>
          </type>
        </variable>
      </class>
    </template>
    <struct name="cauchy_distribution" id="QbKYQz7BGYK8a8ohZ2hrXuUU9ss=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="372" class="def"/>
      <base>
        <type id="VnQORUGYYGgfu5aHGKBuho3jx2s=" name="std::cauchy_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="dB5NpX8MrBKxGGXQAU8SR18Ou2s=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="374"/>
        <type id="VnQORUGYYGgfu5aHGKBuho3jx2s=" name="std::cauchy_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="3aZacT2A4ydcyagdXiJ52V7ZRwA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="373"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="cauchy_distribution" id="oiC4WDPlKwRMFzH9P80yvzZ+CR0=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="376" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="cauchy_distribution" id="Bl5locO0HQHG1C92DIg+P6Xsl5I=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="377" class="def"/>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="a" id="ck50d2gphERpQN8XSZY9ok3Up+I=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="388" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="b" id="OCZVV2ifXWBI91CB0QbldJ861TI=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="389" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="+W4RzLB6ky3hgZwxfs5z9RcA0co=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="392" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="/hN0Kc6Q8qHfN8dWN5qh+bzUzN8=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="391" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="ygsz0+1GQ39rBCIdZjKyzsj6II0=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="382" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="cauchy_distribution" id="uUwfZAJu+igg4VMMesEJSzYKM/4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="370" class="def"/>
        <base>
          <type id="VnQORUGYYGgfu5aHGKBuho3jx2s=" name="std::cauchy_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="chi_squared_distribution" id="u7dVsXS9Th9Pr2kDAU8o9iPDTm0=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="353" class="def"/>
      <base>
        <type id="v8aj7XNqS7jBm6na9qeTew2KEAw=" name="std::chi_squared_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="TTxq7tMXGOr7nB5J5J+uthnjACo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="355"/>
        <type id="v8aj7XNqS7jBm6na9qeTew2KEAw=" name="std::chi_squared_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="XGzesKWWUWy+VI5+akYF4LGbitE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="354"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="chi_squared_distribution" id="ONR1c9v/IhmohYkIwB6CjJ7RAzU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="357" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="chi_squared_distribution" explicit-spec="explicit" id="bz+yI62y/u86ufvDDy6dDqd1APs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="358" class="def"/>
        <param name="n">
          <type class="lvalue-reference">
            <pointee-type id="XGzesKWWUWy+VI5+akYF4LGbitE=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>rep</mono>
          </brief>
          <param name="n">
            <text>The object to copy construct from</text>
          </param>
        </doc>
      </function>
      <function name="max" id="SQeB4iSFGFIokKwEMaMs5Nrw1yw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="367" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="O+BU0LPGfXVGbIvdpAIRSsq3zXw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="366" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="3dhas07cwbb1UpFUVGFlfAAVlo0=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="360" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="chi_squared_distribution" id="gge60u1gT1GSta8ZUdBnaugHm5Q=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="351" class="def"/>
        <base>
          <type id="v8aj7XNqS7jBm6na9qeTew2KEAw=" name="std::chi_squared_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template>
      <tparam name="U1" class="type"/>
      <tparam name="U2" class="type"/>
      <tparam name="Rest" class="type"/>
      <struct name="common_unit" id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="456" class="def"/>
        <file short-path="mp-units/bits/get_associated_quantity.h" source-path="src/core/include/mp-units/bits/get_associated_quantity.h" line="32"/>
        <attr id="is-final"/>
        <base>
          <type name="::_base_type_"/>
        </base>
        <doc>
          <brief>
            <text>Measurement unit for an accumulation of two quantities of different units</text>
          </brief>
          <para>
            <text>While adding two quantities of different units we can often identify which of those unit should be used to prevent data truncation. For example, adding </text>
            <mono>1 * m + 1 * mm</mono>
            <text> will end up in a quantity expressed in millimeters. However, for some cases this is not possible. Choosing any of the units from the arguments of the addition would result in a data truncation. For example, a common unit for </text>
            <mono>1 * km + 1 * mi</mono>
            <text> is </text>
            <mono>[8/125] m</mono>
            <text>. Instead of returning such a complex unit type the library will return a </text>
            <mono>common_unit&lt;mi, km&gt;</mono>
            <text>. This type is convertible to both </text>
            <mono>mi</mono>
            <text> and </text>
            <mono>km</mono>
            <text> without risking data truncation, but is not equal to any of them.</text>
          </para>
          <para class="note">
            <text>User should not instantiate this type! It is not exported from the C++ module. The library will instantiate this type automatically based on the unit arithmetic equation provided by the user.</text>
          </para>
        </doc>
        <namespace-alias name="_base_type_" id="epktwNq8upJ5hMv5eW/dAtmWLYg=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="459"/>
          <type id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=" name="common_unit"/>
        </namespace-alias>
        <variable name="_common_unit_" id="8oyTjUCQg+QWtyYz4Vw8mMjWFNQ=" default="detail::get_common_scaled_unit(U1{}, U2{}, Rest{}...)">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="460" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="R" class="type"/>
      <struct name="delta_" id="D3F/Pkcze5HecC2Ncx6iQ+W2ceU=">
        <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="40" class="def"/>
        <template>
          <tparam name="FwdRep" class="type"/>
          <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
          <function name="operator()" id="2+9EcF2A2pbZtQUa8halwK6DPaM=">
            <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="42" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R{}, Rep&gt;"/>
            </return>
            <param name="lhs">
              <type class="rvalue-reference">
                <pointee-type name="FwdRep"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Function call operator</text>
              </brief>
              <returns>
                <text>A quantity</text>
              </returns>
              <param name="lhs">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
      </struct>
    </template>
    <template>
      <tparam name="Expr" class="type"/>
      <struct name="derived_dimension" id="POEMfU/Xubzxumcn4RFS35LCJ9M=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="165" class="def"/>
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="58"/>
        <attr id="is-final"/>
        <base>
          <type id="ABTctrJzDEy/6RtVFRbUgEd5heg=" name="detail::dimension_interface"/>
        </base>
        <base>
          <type id="lenFtI2LLAKDDPi3md1AI0KB0w8=" name="detail::derived_dimension_impl&lt;Expr...&gt;"/>
        </base>
        <doc>
          <brief>
            <text>A dimension of a derived quantity</text>
          </brief>
          <para>
            <text>Derived dimension is an expression of the dependence of a quantity on the base quantities of a system of quantities as a product of powers of factors corresponding to the base quantities, omitting any numerical factors.</text>
          </para>
          <para>
            <text>Instead of using a raw list of exponents this library decided to use symbolic expression syntax to make types more digestable for the user. The positive exponents are ordered first and all negative exponents are put as a list into the </text>
            <mono>per&lt;...&gt;</mono>
            <text> class template. If a power of exponent is different than </text>
            <mono>1</mono>
            <text> the dimension type is enclosed in </text>
            <mono>power&lt;Dim, Num, Den&gt;</mono>
            <text> class template. Otherwise, it is just put directly in the list without any wrapper. There is also one special case. In case all of the exponents are negative than the </text>
            <mono>dimension_one</mono>
            <text> being a dimension of a dimensionless quantity is put in the front to increase the readability.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 using frequency = decltype(inverse(dim_time));
 using speed = decltype(dim_length / dim_time);
 using acceleration = decltype(dim_speed / dim_time);
 using force = decltype(dim_mass * dim_acceleration);
 using energy = decltype(dim_force * dim_length);
 using moment_of_force = decltype(dim_length * dim_force);
 using torque = decltype(dim_moment_of_force);</text>
          </code>
          <para>
            <text>- </text>
            <mono>frequency</mono>
            <text> will be derived from type </text>
            <mono>derived_dimension&lt;dimension_one, per&lt;dim_time&gt;&gt;</mono>
            <text> - </text>
            <mono>speed</mono>
            <text> will be derived from type </text>
            <mono>derived_dimension&lt;dim_length, per&lt;dim_time&gt;&gt;</mono>
            <text> - </text>
            <mono>acceleration</mono>
            <text> will be derived from type </text>
            <mono>derived_dimension&lt;dim_length, per&lt;power&lt;dim_time, 2&gt;&gt;&gt;</mono>
            <text> - </text>
            <mono>force</mono>
            <text> will be derived from type </text>
            <mono>derived_dimension&lt;dim_length, dim_mass, per&lt;power&lt;dim_time, 2&gt;&gt;&gt;</mono>
            <text> - </text>
            <mono>energy</mono>
            <text> will be derived from type </text>
            <mono>derived_dimension&lt;power&lt;dim_length, 2&gt;, dim_mass, per&lt;power&lt;dim_time, 2&gt;&gt;&gt;</mono>
          </para>
          <para class="note">
            <text>A common convention in this library is to assign the same name for a type and an object of this type. Besides defining them user never works with the dimension types in the source code. All operations are done on the objects. Contrarily, the dimension types are the only one visible in the compilation errors. Having them of the same names improves user experience and somehow blurs those separate domains.</text>
          </para>
          <para class="note">
            <text>User should not instantiate this type! It is not exported from the C++ module. The library will instantiate this type automatically based on the dimensional arithmetic equation provided by the user.</text>
          </para>
          <tparam name="Ds">
            <text>a parameter pack consisting tokens allowed in the dimension specification (base dimensions, </text>
            <mono>dimension_one</mono>
            <text>, </text>
            <mono>power&lt;Dim, Num, Den&gt;</mono>
            <text>, </text>
            <mono>per&lt;...&gt;</mono>
            <text>)</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <template>
      <tparam name="Expr" class="type"/>
      <struct name="derived_quantity_spec" id="byE7CUYOzSGheGlalJ4Dm7GIPHE=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="554" class="def"/>
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="66"/>
        <attr id="is-final"/>
        <base>
          <type id="dK90yYd1DbZiixoVR6le5CoEeq4=" name="detail::derived_quantity_spec_impl&lt;Expr...&gt;"/>
        </base>
        <doc>
          <brief>
            <text>A specification of a derived quantity</text>
          </brief>
          <para>
            <text>Derived quantity is a quantity, in a system of quantities, defined in terms of other quantities of that system. Its dimension is an expression of the dependence of a quantity on the base quantities of a system of quantities as a product of powers of factors corresponding to the base quantities, omitting any numerical factors.</text>
          </para>
          <para>
            <text>Instead of using a raw list of exponents this library decided to use symbolic expression syntax to make types more digestable for the user both for quantity specification and its dimension. The positive exponents are ordered first and all negative exponents are put as a list into the </text>
            <mono>per&lt;...&gt;</mono>
            <text> class template. If a power of exponent is different than </text>
            <mono>1</mono>
            <text> the quantity type is enclosed in </text>
            <mono>power&lt;Q, Num, Den&gt;</mono>
            <text> class template. Otherwise, it is just put directly in the list without any wrapper. In case all of the exponents are negative than the </text>
            <mono>dimensionless</mono>
            <text>/</text>
            <mono>dimension_one</mono>
            <text> is put in the front to increase the readability.</text>
          </para>
          <para>
            <text>The character of those quantities is derived from ingredients or overriden with a template parameter.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 auto frequency = inverse(period_duration);
 auto area = pow&lt;2&gt;(length);
 auto speed = distance / duration;
 auto velocity = displacement / duration;
 auto acceleration = velocity / duration;</text>
          </code>
          <para>
            <text>- the type of </text>
            <mono>frequency</mono>
            <text> is </text>
            <mono>derived_quantity_spec&lt;dimensionless, per&lt;period_duration&gt;&gt;</mono>
            <text> - the dimension type of </text>
            <mono>frequency</mono>
            <text> is </text>
            <mono>derived_dimension&lt;dimension_one, per&lt;dim_time&gt;&gt;</mono>
            <text> - the type of </text>
            <mono>area</mono>
            <text> is </text>
            <mono>derived_quantity_spec&lt;power&lt;length, 2&gt;&gt;</mono>
            <text> - the dimension type of </text>
            <mono>area</mono>
            <text> is </text>
            <mono>derived_dimension&lt;power&lt;dim_length, 2&gt;&gt;</mono>
            <text> - the type of </text>
            <mono>speed</mono>
            <text> is </text>
            <mono>derived_quantity_spec&lt;distance, per&lt;duration&gt;&gt;</mono>
            <text> - the dimension type of </text>
            <mono>speed</mono>
            <text> is </text>
            <mono>derived_dimension&lt;dim_length, per&lt;dim_time&gt;&gt;</mono>
            <text> - the type of </text>
            <mono>velocity</mono>
            <text> is </text>
            <mono>derived_quantity_spec&lt;displacement, per&lt;duration&gt;&gt;</mono>
            <text> - the dimension type of </text>
            <mono>velocity</mono>
            <text> is </text>
            <mono>derived_dimension&lt;dim_length, per&lt;dim_time&gt;&gt;</mono>
            <text> - the type of </text>
            <mono>acceleration</mono>
            <text> is </text>
            <mono>derived_quantity_spec&lt;velocity, per&lt;duration&gt;&gt;</mono>
            <text> - the dimension type of </text>
            <mono>acceleration</mono>
            <text> is </text>
            <mono>derived_dimension&lt;dim_length, per&lt;power&lt;dim_time, 2&gt;&gt;&gt;</mono>
          </para>
          <para class="note">
            <text>User should not instantiate this type! It is not exported from the C++ module. The library will instantiate this type automatically based on the dimensional arithmetic equation provided by the user.</text>
          </para>
          <tparam name="Expr">
            <text>a parameter pack consisting tokens allowed in the quantity specification (named quantity specification, </text>
            <mono>dimensionless</mono>
            <text>, </text>
            <mono>power&lt;Q, Num, Den&gt;</mono>
            <text>, </text>
            <mono>per&lt;...&gt;</mono>
            <text>)</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <template>
      <tparam name="Expr" class="type"/>
      <struct name="derived_unit" id="Z1iuSluZ8g1Y11cbnpQJhcK/DF4=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="519" class="def"/>
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="138"/>
        <attr id="is-final"/>
        <base>
          <type id="zOgqWX81FVkv6q7YjbZXvteLO+s=" name="detail::derived_unit_impl&lt;Expr...&gt;"/>
        </base>
        <doc>
          <brief>
            <text>Measurement unit for a derived quantity</text>
          </brief>
          <para>
            <text>Derived units are defined as products of powers of the base units.</text>
          </para>
          <para>
            <text>Instead of using a raw list of exponents this library decided to use expression template syntax to make types more digestable for the user. The positive exponents are ordered first and all negative exponents are put as a list into the </text>
            <mono>per&lt;...&gt;</mono>
            <text> class template. If a power of exponent is different than </text>
            <mono>1</mono>
            <text> the unit type is enclosed in </text>
            <mono>power&lt;Dim, Num, Den&gt;</mono>
            <text> class template. Otherwise, it is just put directly in the list without any wrapper. There is also one special case. In case all of the exponents are negative then the </text>
            <mono>one</mono>
            <text> being a coherent unit of a dimensionless quantity is put in the front to increase the readability.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 static_assert(is_of_type&lt;inverse(second), derived_unit&lt;one, per&lt;second&gt;&gt;&gt;);
 static_assert(is_of_type&lt;one / inverse(second), second&gt;);
 static_assert(is_of_type&lt;one * second, second&gt;);
 static_assert(is_of_type&lt;metre * metre, derived_unit&lt;power&lt;metre, 2&gt;&gt;&gt;);
 static_assert(is_of_type&lt;metre * second, derived_unit&lt;metre, second&gt;&gt;);
 static_assert(is_of_type&lt;metre / second, derived_unit&lt;metre, per&lt;second&gt;&gt;&gt;);
 static_assert(is_of_type&lt;metre / square(second), derived_unit&lt;metre, per&lt;power&lt;second, 2&gt;&gt;&gt;&gt;);
 static_assert(is_of_type&lt;watt / joule, derived_unit&lt;watt, per&lt;joule&gt;&gt;&gt;);</text>
          </code>
          <para>
            <text>Every unit in the library has its internal canonical representation being the list of exponents of named base units (with the exception of </text>
            <mono>kilogram</mono>
            <text> which is represented as </text>
            <mono>gram</mono>
            <text> here) and a scaling ratio represented with a magnitude.</text>
          </para>
          <para>
            <text>Two units are deemed convertible if their canonical version has units of the same type. Two units are equivalent when they are convertible and their canonical versions have the same scaling ratios.</text>
          </para>
          <para>
            <text>The above means that: - </text>
            <mono>1/s</mono>
            <text> and </text>
            <mono>Hz</mono>
            <text> are both convertible and equal - </text>
            <mono>m</mono>
            <text> and </text>
            <mono>km</mono>
            <text> are convertible but not equal - </text>
            <mono>m</mono>
            <text> and </text>
            <mono>m²</mono>
            <text> ane not convertible and not equal</text>
          </para>
          <para class="note">
            <text>This also means that units like </text>
            <mono>hertz</mono>
            <text> and </text>
            <mono>becquerel</mono>
            <text> are also considered convertible and equal.</text>
          </para>
          <para class="note">
            <text>User should not instantiate this type! It is not exported from the C++ module. The library will instantiate this type automatically based on the unit arithmetic equation provided by the user.</text>
          </para>
          <tparam name="Us">
            <text>a parameter pack consisting tokens allowed in the unit specification (units, </text>
            <mono>power&lt;U, Num, Den&gt;</mono>
            <text>, </text>
            <mono>per&lt;...&gt;</mono>
            <text>)</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <struct name="dimension_one" id="Y9loPHI3aqIBUh1WW5wAQ0Y/Qrc=">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="175" class="def"/>
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="61"/>
      <attr id="is-final"/>
      <base>
        <type id="ABTctrJzDEy/6RtVFRbUgEd5heg=" name="detail::dimension_interface"/>
      </base>
      <base>
        <type id="lenFtI2LLAKDDPi3md1AI0KB0w8=" name="detail::derived_dimension_impl&lt;&gt;"/>
      </base>
      <doc>
        <brief>
          <text>Dimension one</text>
        </brief>
        <para>
          <text>Dimension for which all the exponents of the factors corresponding to the base dimensions are zero. It is a dimension of a quantity of dimension one also known as &quot;dimensionless&quot;.</text>
        </para>
      </doc>
    </struct>
    <struct name="dimension_symbol_formatting" id="ID8GQ+rVFkp35Kev6cwx6XXDruM=">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="219" class="def"/>
      <variable name="char_set" id="Xw0aaBfI3gP6GHZctKIeipGjQGY=" default="character_set::default_character_set">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="222"/>
        <type id="OkYR13gJx4Gk7BZVu8mqIVDevuA=" name="character_set"/>
      </variable>
    </struct>
    <struct name="dimensionless" id="9IoZRBFHXewCAftgtSxh0AWMaKM=">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="563" class="def"/>
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="56"/>
      <attr id="is-final"/>
      <base>
        <type id="lFfFmGPkgfj4cwr//D1NrE2dCp4=" name="mp_units::quantity_spec&lt;derived_quantity_spec&lt;&gt;{}&gt;"/>
      </base>
      <doc>
        <brief>
          <text>Quantity of dimension one</text>
        </brief>
        <para>
          <text>Quantity of dimension one also commonly named as &quot;dimensionless&quot; is a quantity with a dimension for which all the exponents of the factors corresponding to the base dimensions are zero.</text>
        </para>
      </doc>
    </struct>
    <struct name="discrete_distribution" id="j8odvlYhJp2avcwFshUiYcrJ39I=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="435" class="def"/>
      <base>
        <type id="r/8Grk/kAo8OBp65u7iGhFcduYc=" name="std::discrete_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="3/njqpD+AdzAzExLqMlOpQolLBo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="437"/>
        <type id="r/8Grk/kAo8OBp65u7iGhFcduYc=" name="std::discrete_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="G8Wf99huft+28SrzmrPUN700fQg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="436"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="discrete_distribution" id="FgTI9M0klHl8C++NsNfVivcJpk8=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="439" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="discrete_distribution" id="sye97Y3EaRJ5OTBhn4oC5FZR/So=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="446" class="def"/>
        <param name="weights">
          <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;double&gt;"/>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>initializer_list</mono>
          </brief>
          <param name="weights">
            <text>The object to construct from</text>
          </param>
        </doc>
      </function>
      <template>
        <tparam name="InputIt" class="type"/>
        <function class="constructor" name="discrete_distribution" id="GOIdOzUDPtkobSv5oMKOVHbIM84=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="441" class="def"/>
          <param name="first">
            <type name="InputIt"/>
          </param>
          <param name="last">
            <type name="InputIt"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="UnaryOperation" class="type"/>
        <function class="constructor" name="discrete_distribution" id="d34eeXLAi4lhh83h+6EeUwb5dgA=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="448" class="def"/>
          <param name="count">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <param name="xmin">
            <type name="double"/>
          </param>
          <param name="xmax">
            <type name="double"/>
          </param>
          <param name="unary_op">
            <type name="UnaryOperation"/>
          </param>
        </function>
      </template>
      <function name="max" id="R6BoFXz+HcgY45L385FnvwChxBI=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="461" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="4uKj8O0o/YcKiK6+3lxlNa1DhgQ=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="460" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="9Mv11oEp/IbBqgIYJKsdAQ1DPfw=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="454" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="discrete_distribution" id="UYjLFfd8g5EUPqEDjyTy/Tm4ZTw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="433" class="def"/>
        <base>
          <type id="r/8Grk/kAo8OBp65u7iGhFcduYc=" name="std::discrete_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="exponential_distribution" id="4K6aCOQVI+ACCD3yP2peVr0E1PE=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="225" class="def"/>
      <base>
        <type id="SjjQTSGKhSkgJwArA0akTySgtMY=" name="std::exponential_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="tYf9shF4YWv279aJ4nhSVO8XW6M=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="227"/>
        <type id="SjjQTSGKhSkgJwArA0akTySgtMY=" name="std::exponential_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="nGgDncH5pzldAci2xbYPZaJm8fo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="226"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="exponential_distribution" id="KakZCt4/M3AyORH7CZZzEkh2M98=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="229" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="exponential_distribution" explicit-spec="explicit" id="h+R/WbP9SMO70S1h2gqKJXDHu78=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="230" class="def"/>
        <param name="lambda">
          <type class="lvalue-reference">
            <pointee-type id="nGgDncH5pzldAci2xbYPZaJm8fo=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>rep</mono>
          </brief>
          <param name="lambda">
            <text>The object to copy construct from</text>
          </param>
        </doc>
      </function>
      <function name="max" id="b+OrwKBjsaoEDXvJjo1lYzN31DI=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="239" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="XBMoh0Xrf1PhwuJ1sJ1YXnGgyhs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="238" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="P/3VU29zZil+zEu8QJGvhrbJydY=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="232" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="exponential_distribution" id="gaBPQ2gEHEV5qbLgM2J56YQ+/0s=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="223" class="def"/>
        <base>
          <type id="SjjQTSGKhSkgJwArA0akTySgtMY=" name="std::exponential_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="extreme_value_distribution" id="7l1U8QmIHgSLnWK243n/XCrP72s=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="282" class="def"/>
      <base>
        <type id="HidA6Hsrk+DnXwLN4XN0UpsqQBE=" name="std::extreme_value_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="HVzC7ZKHsjG2wAqNxtbgPK+E1xs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="284"/>
        <type id="HidA6Hsrk+DnXwLN4XN0UpsqQBE=" name="std::extreme_value_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="Q34qbDjbo5lxFFnruyUD5yTz1As=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="283"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="extreme_value_distribution" id="y9EdSzmac/4RSJRPEPM4p3Z0KNU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="286" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="extreme_value_distribution" id="W0l3dXWRk344plYvduJ5fiF0k+8=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="287" class="def"/>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="Q34qbDjbo5lxFFnruyUD5yTz1As=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="a" id="6SAHf8F3bMNkhZsxGYmZCEf8d+Q=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="295" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="NRPVt+drtKOEcNzZ0OhQbyi3by8=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="298" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="nEIOlh/+nYPrbpDYVbSpDVHEOsc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="297" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="EwUHWqXnjv1Ql3TBCTGGa2fHXtw=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="289" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="extreme_value_distribution" id="0u5LR+WYy/eDHuhqj8ZgjVtV7tE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="280" class="def"/>
        <base>
          <type id="HidA6Hsrk+DnXwLN4XN0UpsqQBE=" name="std::extreme_value_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="fisher_f_distribution" id="LZUlu9/7CoH/TIU3oZRNF2KzSlo=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="397" class="def"/>
      <base>
        <type id="XrJLwfK2VeCuUmS6Ks4CYRwSbsg=" name="std::fisher_f_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="F+YUqebG54Xtr7ZffSxtq0cv2Q4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="399"/>
        <type id="XrJLwfK2VeCuUmS6Ks4CYRwSbsg=" name="std::fisher_f_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="6MQkxvG6lLloVnwpfxj+3cPlfEo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="398"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="fisher_f_distribution" id="WqV7Iv/58Pjp+MM/zTualKc/Lfg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="401" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="fisher_f_distribution" id="my1RlEnv+3W/tpbdw6Ui+EwwaMQ=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="402" class="def"/>
        <param name="m">
          <type class="lvalue-reference">
            <pointee-type id="6MQkxvG6lLloVnwpfxj+3cPlfEo=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="n">
          <type class="lvalue-reference">
            <pointee-type id="6MQkxvG6lLloVnwpfxj+3cPlfEo=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="max" id="SvGMhOTMxbBTkFTY2ATGbr2EZkg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="411" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="JwlgZTgvukUzQsuqnGQbX1LN00k=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="410" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="Dt//eHEKosGRPThbZwyAuzIZV/I=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="404" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="fisher_f_distribution" id="jiL7ASb61aAbyRKU7QuwRNpALBo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="395" class="def"/>
        <base>
          <type id="XrJLwfK2VeCuUmS6Ks4CYRwSbsg=" name="std::fisher_f_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="gamma_distribution" id="pJPzZ3aM6Sgzq9xswyH/2P7ThTI=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="244" class="def"/>
      <base>
        <type id="dVFtKUQzLOwE52yxJODpHaj/Reo=" name="std::gamma_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="elW9jc9hMR5YXWACgbG/l58ayJE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="246"/>
        <type id="dVFtKUQzLOwE52yxJODpHaj/Reo=" name="std::gamma_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="sut40JrkM+7SKBhr8ZUe3Ysk68o=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="245"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="gamma_distribution" id="kZ908wqMqi/QNoE2aoquXPPdnuQ=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="248" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="gamma_distribution" id="ueNLsZNmUMB6pbmbsvdc42Bcw3g=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="249" class="def"/>
        <param name="alpha">
          <type class="lvalue-reference">
            <pointee-type id="sut40JrkM+7SKBhr8ZUe3Ysk68o=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="beta">
          <type class="lvalue-reference">
            <pointee-type id="sut40JrkM+7SKBhr8ZUe3Ysk68o=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="max" id="LwJVacQrM7J0YBquT4ApJIacAfw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="258" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="wjuO9D4ZVQMupNniFjyJ7AnURsg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="257" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="J7raZZze1xY1Ktknh/2aX9dVPBA=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="251" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="gamma_distribution" id="qEQG/H2cZ+V6quF52Fi/wmDkJtw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="242" class="def"/>
        <base>
          <type id="dVFtKUQzLOwE52yxJODpHaj/Reo=" name="std::gamma_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="geometric_distribution" id="h44iahz4ZfqPSliO3RinQXaNYW8=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="187" class="def"/>
      <base>
        <type id="W4qsjmfC2zpJ2+YOOKcyFzgVbgY=" name="std::geometric_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="B5ZYxxyuozt1clfto1OOxuEcFpc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="189"/>
        <type id="W4qsjmfC2zpJ2+YOOKcyFzgVbgY=" name="std::geometric_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="eoaTof2/TOMdnZhZ+gx7ULAgRPY=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="188"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="geometric_distribution" id="IMNrrkhMsn0e6UFhwJeXQvnz/2c=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="191" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="geometric_distribution" explicit-spec="explicit" id="7wG1hTJPAaNqYl3RZzUyHWMH6V4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="192" class="def"/>
        <param name="p">
          <type name="double"/>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>double</mono>
          </brief>
          <param name="p">
            <text>The value to construct from</text>
          </param>
        </doc>
      </function>
      <function name="max" id="61GaktazXXwzv4fRN3XsJiXzTUw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="201" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="Z1K9u0ueiLNeS+w8AfWa4RziDhg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="200" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="yDVGfcvc3wvhI4c8dY+xuG9FpOw=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="194" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="geometric_distribution" id="YC8KvTybmSxtQknq4s2zvKKHFKg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="185" class="def"/>
        <base>
          <type id="W4qsjmfC2zpJ2+YOOKcyFzgVbgY=" name="std::geometric_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="is_kind" id="YL6ZGeo/28JznPB+3jNXH52jMYA=">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="245" class="def"/>
    </struct>
    <template>
      <tparam name="Q" class="type"/>
      <struct name="kind_of_" id="ACTfuwy0RbQx/b89bIw2JeKgqPM=">
        <file short-path="mp-units/framework/quantity_spec_concepts.h" source-path="src/core/include/mp-units/framework/quantity_spec_concepts.h" line="41"/>
      </struct>
    </template>
    <template class="partial" requires="(!detail::QuantityKindSpec&lt;Q&gt;) &amp;&amp; (detail::get_kind_tree_root(Q{}) == Q{})" id="ACTfuwy0RbQx/b89bIw2JeKgqPM=">
      <tparam name="Q" class="type"/>
      <targ class="type" type="Q"/>
      <struct name="kind_of_" id="2zL8iC4Y6tMvdCC6xUz2pWn65ro=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="580" class="def"/>
        <attr id="is-final"/>
        <base>
          <type name="Q::_base_type_"/>
        </base>
        <namespace-alias name="_base_type_" id="XX4lHFlwRKdmlddd2pVEuLfpBb4=">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="584"/>
          <type id="2zL8iC4Y6tMvdCC6xUz2pWn65ro=" name="kind_of_"/>
        </namespace-alias>
        <variable name="_quantity_spec_" id="k2G+DhhzYX2hJBnreFuokJEAumk=" default="Q{}">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="585" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
      </struct>
    </template>
    <struct name="lognormal_distribution" id="57o+9CeeYvYmYpB3f+2zAYx4jmA=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="328" class="def"/>
      <base>
        <type id="/f/BOADu4tnBCtCZdDmoAdpny0c=" name="std::lognormal_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="/K1nCIbvdhqx6mVs6z9eqV+mrLE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="330"/>
        <type id="/f/BOADu4tnBCtCZdDmoAdpny0c=" name="std::lognormal_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="qboXyJTTBKWSe91DOzrSnGZweOs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="329"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="lognormal_distribution" id="RyErq1N9Z9F50xYCuyLs0F6/hfs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="332" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="lognormal_distribution" id="u7hU6rjkSRu3pUUCw3+UGXTA8Ic=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="333" class="def"/>
        <param name="m">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="s">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="m" id="Sn+m+8ZIY2YlgN9dKLyDUC++Csc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="344" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="cyumLP3BQSkWZFkxxBBe+pIQQKs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="348" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="Bnl5KBnKgbgP/+7Hb/xe0q1FhZs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="347" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="OklcXJ1Xx1UMqX1lrGDpAKYllMY=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="338" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
      <function name="s" id="jgpJKUeduEWyzS8/28f2wX9OEt0=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="345" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="lognormal_distribution" id="i0mQvJPo/JH+M/NDllaJbxyz+Cw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="326" class="def"/>
        <base>
          <type id="/f/BOADu4tnBCtCZdDmoAdpny0c=" name="std::lognormal_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template requires="(Value &gt; 0)">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam name="Value" class="constant" type="long double"/>
      <struct name="mag_constant" id="QOYkZJE3knLFFh9CCpxR3d0TdYc=">
        <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="54" class="def"/>
        <file short-path="mp-units/framework/unit_magnitude_concepts.h" source-path="src/core/include/mp-units/framework/unit_magnitude_concepts.h" line="44"/>
        <variable name="_symbol_" id="HXEhG+Wvi5J4merOfUuSBEwi7/4=" default="Symbol">
          <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="57" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_value_" id="1DvgnLZUrMiBF6VlO1LOKVB2jr0=" default="Value">
          <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="58" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type name="long double"/>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam class="constant" type="auto"/>
      <struct name="named_unit" id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="283"/>
        <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="49"/>
        <doc>
          <brief>
            <text>A named unit</text>
          </brief>
          <para>
            <text>Defines a unit with a special name. It may be used to provide a base unit in the system of units (e.g. </text>
            <mono>metre</mono>
            <text>) or a name assigned to another scaled or derived unit (e.g. </text>
            <mono>hour</mono>
            <text>, </text>
            <mono>joule</mono>
            <text>). Most of the named units may be composed with a prefix to create a </text>
            <mono>prefixed_unit</mono>
            <text>.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 inline constexpr struct second final : named_unit&lt;&quot;s&quot;, kind_of&lt;time&gt;&gt; {} second;
 inline constexpr struct metre final : named_unit&lt;&quot;m&quot;, kind_of&lt;length&gt; {} metre;
 inline constexpr struct hertz final : named_unit&lt;&quot;Hz&quot;, inverse(second), kind_of&lt;frequency&gt;&gt; {} hertz;
 inline constexpr struct newton final : named_unit&lt;&quot;N&quot;, kilogram * metre / square(second)&gt; {} newton;
 inline constexpr struct degree_Celsius final : named_unit&lt;{u8&quot;℃&quot;, &quot;`C&quot;}, kelvin, zeroth_degree_Celsius&gt; {}
 degree_Celsius; inline constexpr struct minute final : named_unit&lt;&quot;min&quot;, mag&lt;60&gt; * second&gt; {} minute;</text>
          </code>
          <para class="note">
            <text>A common convention in this library is to assign the same name for a type and an object of this type. Besides defining them user never works with the unit types in the source code. All operations are done on the objects. Contrarily, the unit types are the only one visible in the compilation errors. Having them of the same names improves user experience and somehow blurs those separate domains.</text>
          </para>
          <tparam name="Symbol">
            <text>a short text representation of the unit</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <template class="partial" requires="(!Symbol.empty())" id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <targ class="constant" value="Symbol"/>
      <struct name="named_unit" id="byovXrTPGQ7YGwCx/a1z9Fi2Z34=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="335" class="def"/>
        <base>
          <type id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=" name="detail::unit_interface"/>
        </base>
        <doc>
          <brief>
            <text>Specialization for a unit that can be reused by several base quantities</text>
          </brief>
          <para>
            <text>This specialization is used in rare cases where more than one base quantity in a specific system of units uses the same unit. For example in a hypothetical system of natural units where constant for speed of light </text>
            <mono>c = 1</mono>
            <text>, length and time could be measured in seconds. In such cases </text>
            <mono>system_reference</mono>
            <text> has to be used to explicitly express such a binding.</text>
          </para>
          <tparam name="Symbol">
            <text>a short text representation of the unit</text>
          </tparam>
        </doc>
        <namespace-alias name="_base_type_" id="v2TDwkIt+wMIlyrZokpehrhM1kw=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="336"/>
          <type id="byovXrTPGQ7YGwCx/a1z9Fi2Z34=" name="named_unit"/>
        </namespace-alias>
        <variable name="_symbol_" id="ybFKjug9k9JUPeggEkF5nl8GwMM=" default="Symbol">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="337" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
          <doc>
            <brief>
              <text>Unique base unit identifier</text>
            </brief>
          </doc>
        </variable>
      </struct>
    </template>
    <template class="partial" requires="(!Symbol.empty())" id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam name="QS" class="constant" type="Unit auto"/>
      <targ class="constant" value="Symbol"/>
      <targ class="constant" value="U"/>
      <struct name="named_unit" id="cCrH0nRqlKVsLO6I070T3+4Qrbc=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="305" class="def"/>
        <base>
          <type id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=" name="detail::unit_interface"/>
        </base>
        <doc>
          <brief>
            <text>Specialization for unit of a specified base quantity</text>
          </brief>
          <para>
            <text>Associates a unit with a specified base quantity. For example </text>
            <mono>si::metre</mono>
            <text> is a unit to measure </text>
            <mono>isq::length</mono>
            <text> in the SI system.</text>
          </para>
          <para class="note">
            <text>This is the preferred way to define a measurement unit for a specific base quantity.</text>
          </para>
          <para class="note">
            <text>It does not have to (or sometimes even can&apos;t) be a proper system&apos;s base unit. For example a base unit of mass in the SI is </text>
            <mono>si::kilogram</mono>
            <text> but here you are about to provide an </text>
            <mono>si::gram</mono>
            <text> and it will work just fine as those two are convertible to each other. A similar case would be the </text>
            <mono>cgs::centimetre</mono>
            <text> that is a base unit for </text>
            <mono>isq::length</mono>
            <text> in the CGS system.</text>
          </para>
          <para>
            <text>Allows assigning a special name to another scaled or derived unit (e.g. </text>
            <mono>hour</mono>
            <text>, </text>
            <mono>joule</mono>
            <text>).</text>
          </para>
          <tparam name="Symbol">
            <text>a short text representation of the unit</text>
          </tparam>
          <tparam name="QuantitySpec">
            <text>a specification of a base quantity to be measured with this unit</text>
          </tparam>
          <tparam name="Unit">
            <text>a unit for which we provide a special name</text>
          </tparam>
        </doc>
        <namespace-alias name="_base_type_" id="FSiw9ECY864FsWulXq3gI4cfnNU=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="306"/>
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="353"/>
          <type id="cCrH0nRqlKVsLO6I070T3+4Qrbc=" name="named_unit"/>
        </namespace-alias>
        <variable name="_quantity_spec_" id="dfPAXrD5H9iaQ71lV+5R72Lp/hI=" default="QS">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="308" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_symbol_" id="/WTTnYR9pem4POl7ueHM9OTfnWQ=" default="Symbol">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="307" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
          <doc>
            <brief>
              <text>Unique base unit identifier</text>
            </brief>
            <para>
              <text>Unique unit identifier</text>
            </para>
          </doc>
        </variable>
      </struct>
    </template>
    <template class="partial" requires="(!Symbol.empty()) &amp;&amp; (QS.dimension == detail::get_associated_quantity(U).dimension)" id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam name="QS" class="constant" type="AssociatedUnit auto"/>
      <tparam name="PO" class="constant" type="QuantityKindSpec auto"/>
      <targ class="constant" value="Symbol"/>
      <targ class="constant" value="U"/>
      <targ class="constant" value="QS"/>
      <struct name="named_unit" id="XuBla4LOQyT86pz+Xipi/AU+O+w=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="314" class="def"/>
        <base>
          <type id="0hsDjNc7LbBtjT5ug7bmPVVSBvU=" name="detail::unit_interface"/>
        </base>
        <doc>
          <brief>
            <text>Specialization for a unit with special name valid only for a specific quantity</text>
          </brief>
          <para>
            <text>The same as the above but additionally limits the usage of this unit to provided quantities.</text>
          </para>
          <tparam name="Symbol">
            <text>a short text representation of the unit</text>
          </tparam>
          <tparam name="Unit">
            <text>a unit for which we provide a special name</text>
          </tparam>
          <tparam name="QuantitySpec">
            <text>a specification of a quantity to be measured with this unit</text>
          </tparam>
        </doc>
        <namespace-alias name="_base_type_" id="KoHkuoOTcWbLIMD9aVjyTEt0T8k=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="315"/>
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="360"/>
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="377"/>
          <type id="XuBla4LOQyT86pz+Xipi/AU+O+w=" name="named_unit"/>
        </namespace-alias>
        <variable name="_point_origin_" id="SZhD5qJlqKJFEjrOHUzDIonJZdI=" default="PO">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="318" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_quantity_spec_" id="x5gr7e3hVADYAVf9cYNcndhw4ug=" default="QS">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="317" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_symbol_" id="lLqn/AGQLXiGDS+bELY8X55IN/U=" default="Symbol">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="316" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
          <doc>
            <brief>
              <text>Unique base unit identifier</text>
            </brief>
            <para>
              <text>Unique unit identifier</text>
            </para>
            <para>
              <text>Unique unit identifier</text>
            </para>
          </doc>
        </variable>
      </struct>
    </template>
    <template class="partial" requires="(!Symbol.empty()) &amp;&amp; (QS.dimension == detail::get_associated_quantity(U).dimension)" id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam name="U" class="constant" type="AssociatedUnit auto"/>
      <tparam name="QS" class="constant" type="QuantityKindSpec auto"/>
      <tparam name="PO" class="constant" type="PointOrigin auto"/>
      <targ class="constant" value="Symbol"/>
      <targ class="constant" value="U"/>
      <targ class="constant" value="QS"/>
      <targ class="constant" value="PO"/>
      <struct name="named_unit" id="5Noi5D/LOt+gkK15nhjAA4sMQ2w=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="384" class="def"/>
        <base>
          <type name="::_base_type_"/>
        </base>
        <namespace-alias name="_base_type_" id="LCMnFpyeraBEB/WeCbv1IIYygXA=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="385"/>
          <type id="5Noi5D/LOt+gkK15nhjAA4sMQ2w=" name="named_unit"/>
        </namespace-alias>
        <variable name="_point_origin_" id="yuTNRTmiwNomKK0fDUK1+E0cokM=" default="PO">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="388" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_quantity_spec_" id="GcfIcA9C7r+Ywgzo6S19scqQUEk=" default="QS">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="387" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_symbol_" id="FcH2JQ3fFlsXxgyM5v7odTZx3jU=" default="Symbol">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="386" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
          <doc>
            <brief>
              <text>Unique unit identifier</text>
            </brief>
          </doc>
        </variable>
      </struct>
    </template>
    <struct name="negative_binomial_distribution" id="9p9HGeUe0i/Rw5H7LA+XNx2r7fk=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="166" class="def"/>
      <base>
        <type id="vh7/ooIMXqh4hRDfziptqR6DoQg=" name="std::negative_binomial_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="a9fAGbXLV8KT3u9sDw+YrmLFxhg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="168"/>
        <type id="vh7/ooIMXqh4hRDfziptqR6DoQg=" name="std::negative_binomial_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="ZnzSDIvCenV3LrxC5Sh+PCSTvBc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="167"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="negative_binomial_distribution" id="1aqmKQtUZcFxnFkvYd7p2uUn1x4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="170" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="negative_binomial_distribution" id="9QS8qZ3+ALWwC6GvQUQjB29eaH0=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="171" class="def"/>
        <param name="k">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="p">
          <type name="double"/>
        </param>
      </function>
      <function name="k" id="epuKscsKeloDGUAjX8DWHJjfVGk=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="179" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="0lN4pTsMKoOSd9A1X5eqieZCtLE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="182" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="fIv/epUsMPSS6lCZWspePa2pYgs=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="181" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="ZEnzcuode/Yt2KlRVhdNmw9+guQ=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="173" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="negative_binomial_distribution" id="mnjLXx2PbgPwLWoP7Yl+MoxdOiw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="164" class="def"/>
        <base>
          <type id="vh7/ooIMXqh4hRDfziptqR6DoQg=" name="std::negative_binomial_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="normal_distribution" id="o0RxzOPu8cJxwDSAvlBcRJdo1TA=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="303" class="def"/>
      <base>
        <type id="6ZaYgxHWDhF63H1xcM2RyxnmaJ8=" name="std::normal_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="qaJUrfBYTPlTTh7v19WmAldGtOw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="305"/>
        <type id="6ZaYgxHWDhF63H1xcM2RyxnmaJ8=" name="std::normal_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="Y/5Kn0J6nlvEjo+DnKelToa80es=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="304"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="normal_distribution" id="oDaZbkXmb6fUtubgbVp0uDs4F7w=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="307" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="normal_distribution" id="qAFyjjXGrFGGoVUqo6i1e8QpU0I=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="308" class="def"/>
        <param name="mean">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="stddev">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="max" id="qqKM8ZACcovjXiiFteoR17IrQjw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="323" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="mean" id="p5dexmetQMSyQalbvvpoAVP9ZiA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="319" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="S4FkBmCB9xCLlkyE2cKcHKzYn0w=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="322" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="4nLc7YICtUvZKUP/+wFNokGRSAE=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="313" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
      <function name="stddev" id="dU9tR6l51c874f7ngnX9U8aIkko=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="320" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="normal_distribution" id="SxjrwzDn0iFq/7apBfhEXxqYPzY=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="301" class="def"/>
        <base>
          <type id="6ZaYgxHWDhF63H1xcM2RyxnmaJ8=" name="std::normal_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="one" id="+v+1NlFes/kYvLQ1UY7zDYGY6LM=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="528" class="def"/>
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="141"/>
      <attr id="is-final"/>
      <base>
        <type id="zOgqWX81FVkv6q7YjbZXvteLO+s=" name="detail::derived_unit_impl&lt;&gt;"/>
      </base>
      <doc>
        <brief>
          <text>Unit one</text>
        </brief>
        <para>
          <text>Unit of a dimensionless quantity.</text>
        </para>
      </doc>
      <namespace-alias name="_base_type_" id="08PdCp8UsGCadxwffOip6EkHHgw=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="469"/>
        <type id="zOgqWX81FVkv6q7YjbZXvteLO+s=" name="derived_unit_impl&lt;&gt;"/>
      </namespace-alias>
    </struct>
    <struct name="parts_per_million" id="+PEwhb5IiFzVW2Xt/ZNYQBBEcoE=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="659" class="def"/>
      <attr id="is-final"/>
      <base>
        <type id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=" name="named_unit&lt;&quot;ppm&quot;, mag_ratio&lt;1, 1000000&gt; * one&gt;"/>
      </base>
    </struct>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Ts" class="type"/>
      <struct name="per" id="wp3pVcunyABtDOs/bZOWFzMb66M=">
        <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="70" class="def"/>
        <attr id="is-final"/>
        <doc>
          <brief>
            <text>Type list type storing the list of components with negative exponents</text>
          </brief>
          <para class="note">
            <text>Can&apos;t be empty</text>
          </para>
        </doc>
      </struct>
    </template>
    <struct name="per_mille" id="FvgSARfVJD2/PsS4hQpN+KKZhtc=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="658" class="def"/>
      <attr id="is-final"/>
      <base>
        <type id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=" name="named_unit&lt;symbol_text&lt;4UL - 1, 3UL - 1&gt;{u8&quot;\342\200\260&quot;, &quot;%o&quot;}, mag_ratio&lt;1, 1000&gt; * one&gt;"/>
      </base>
    </struct>
    <struct name="percent" id="IfrE4sWb8Db2oZnIjGsgT9Ncxso=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="657" class="def"/>
      <attr id="is-final"/>
      <base>
        <type id="7KEkokV0RNb/pV7uiB2wTF1Xn0s=" name="named_unit&lt;&quot;%&quot;, mag_ratio&lt;1, 100&gt; * one&gt;"/>
      </base>
    </struct>
    <struct name="pi" id="xfzQxS6HL4fjaL3YGdUM/w5S4HU=">
      <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="93" class="def"/>
      <attr id="is-final"/>
      <base>
        <type id="QOYkZJE3knLFFh9CCpxR3d0TdYc=" name="mag_constant&lt;symbol_text&lt;3UL - 1, 3UL - 1&gt;{u8&quot;\317\200&quot;, &quot;pi&quot;}, std::numbers::pi_v&lt;long double&gt;&gt;"/>
      </base>
    </struct>
    <class name="piecewise_constant_distribution" id="0/ZwjbXgVyh1DiEQlUr0KqzIwtY=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="466" class="def"/>
      <base>
        <type id="LI9dGE1LL0agAkFIIg2u83uLzrQ=" name="std::piecewise_constant_distribution&lt;Q::rep&gt;"/>
      </base>
      <function class="constructor" name="piecewise_constant_distribution" id="SQAwkqNHwnDll8KRTM/L1gH9pq4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="481" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <template>
        <tparam name="UnaryOperation" class="type"/>
        <function class="constructor" name="piecewise_constant_distribution" id="ffVUn64/bUFUQhlRIjou6TWlsio=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="489" class="def"/>
          <param name="bl">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;Q&gt;"/>
          </param>
          <param name="fw">
            <type name="UnaryOperation"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="InputIt1" class="type"/>
        <tparam name="InputIt2" class="type"/>
        <function class="constructor" name="piecewise_constant_distribution" id="3sSW/GVxEiEQOqOIYr+0qi0OWE0=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="483" class="def"/>
          <param name="first_i">
            <type name="InputIt1"/>
          </param>
          <param name="last_i">
            <type name="InputIt1"/>
          </param>
          <param name="first_w">
            <type name="InputIt2"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="UnaryOperation" class="type"/>
        <function class="constructor" name="piecewise_constant_distribution" id="ktbzloWYcteTVu5I7m+zEPN/cm0=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="495" class="def"/>
          <param name="nw">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <param name="xmin">
            <type class="lvalue-reference">
              <pointee-type name="Q" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="xmax">
            <type class="lvalue-reference">
              <pointee-type name="Q" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="fw">
            <type name="UnaryOperation"/>
          </param>
        </function>
      </template>
      <function name="intervals" id="ojl78juavNOdH57Rw1rYFYpjC9o=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="508" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type id="IVDvg3ch4ONgsQaaQ9HHyP1tlOI=" name="std::vector&lt;Q&gt;"/>
        </return>
      </function>
      <function name="max" id="LG8E5zIpKpz1a88QnwJwp3mJ5hY=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="520" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="VIA6LRmTzYpwCToUNyaZJjuSnMM=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="519" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="VMq75je83v5r0mWbD/FYJCFEjpY=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="502" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </class>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <class name="piecewise_constant_distribution" id="p108Z2mkCvCi37i0xhi2HK/6R1c=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="464" class="def"/>
        <base>
          <type id="LI9dGE1LL0agAkFIIg2u83uLzrQ=" name="std::piecewise_constant_distribution&lt;Q::rep&gt;"/>
        </base>
      </class>
    </template>
    <class name="piecewise_linear_distribution" id="Wcw32giR398TK6R1qngkG5zNkJI=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="525" class="def"/>
      <base>
        <type id="QQxAuhoP+NGH998hdj515fohWuc=" name="std::piecewise_linear_distribution&lt;Q::rep&gt;"/>
      </base>
      <function class="constructor" name="piecewise_linear_distribution" id="TmyDIPY1vT2AJglhbiI52LidTYo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="540" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <template>
        <tparam name="UnaryOperation" class="type"/>
        <function class="constructor" name="piecewise_linear_distribution" id="fQ7Khqx8C7lMzEWgb0rcDPUbWZs=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="548" class="def"/>
          <param name="bl">
            <type id="3tT5Y8vozttMWXrA/fNw4NcDYTE=" name="std::initializer_list&lt;Q&gt;"/>
          </param>
          <param name="fw">
            <type name="UnaryOperation"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="InputIt1" class="type"/>
        <tparam name="InputIt2" class="type"/>
        <function class="constructor" name="piecewise_linear_distribution" id="xsXUwGeemj1LIBnVQkNGBYKJ22w=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="542" class="def"/>
          <param name="first_i">
            <type name="InputIt1"/>
          </param>
          <param name="last_i">
            <type name="InputIt1"/>
          </param>
          <param name="first_w">
            <type name="InputIt2"/>
          </param>
        </function>
      </template>
      <template>
        <tparam name="UnaryOperation" class="type"/>
        <function class="constructor" name="piecewise_linear_distribution" id="zSSG0Mfo0Pw30Svegu5//FkPLGU=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="554" class="def"/>
          <param name="nw">
            <type id="1rC7g2lG/OJ9bbXPgmsHoNh6P1I=" name="std::size_t"/>
          </param>
          <param name="xmin">
            <type class="lvalue-reference">
              <pointee-type name="Q" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="xmax">
            <type class="lvalue-reference">
              <pointee-type name="Q" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="fw">
            <type name="UnaryOperation"/>
          </param>
        </function>
      </template>
      <function name="intervals" id="i4UtuHme1thRTfFd2pjuez6RORc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="567" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type id="IVDvg3ch4ONgsQaaQ9HHyP1tlOI=" name="std::vector&lt;Q&gt;"/>
        </return>
      </function>
      <function name="max" id="fbZbfEp/cynccuU5lZVhov8NJ2M=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="579" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="ONTzRW9QhITaak43m+/gu0GrSpU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="578" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="RbwwNSNn1RgTcnBsROKFGRvo0+4=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="561" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </class>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <class name="piecewise_linear_distribution" id="UCi1HHsRFcR2OQsCdSLJBmA/w3w=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="523" class="def"/>
        <base>
          <type id="QQxAuhoP+NGH998hdj515fohWuc=" name="std::piecewise_linear_distribution&lt;Q::rep&gt;"/>
        </base>
      </class>
    </template>
    <template>
      <tparam name="R" class="type"/>
      <struct name="point_" id="Y/D9YeZDEqNzCzYpf+Eao1d0mDk=">
        <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="49" class="def"/>
        <template>
          <tparam name="FwdRep" class="type"/>
          <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
          <function name="operator()" id="zDZWVkpUNI0DnA+/7h2whhFNDdI=">
            <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="51" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R{}, default_point_origin(R{}), Rep&gt;"/>
            </return>
            <param name="lhs">
              <type class="rvalue-reference">
                <pointee-type name="FwdRep"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Function call operator</text>
              </brief>
              <returns>
                <text>A quantity point</text>
              </returns>
              <param name="lhs">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
      </struct>
    </template>
    <struct name="poisson_distribution" id="mIeD6vADZhgXhoMle9c258esyPc=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="206" class="def"/>
      <base>
        <type id="GJ3G01ROSncp3ambIVFIzeYA0D4=" name="std::poisson_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="piiVSyLAWBEv/Tej5+LbPJCfQNU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="208"/>
        <type id="GJ3G01ROSncp3ambIVFIzeYA0D4=" name="std::poisson_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="2K0zr8CoZXealJqPnUOhaH8pL0A=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="207"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="poisson_distribution" id="7rtrcBWZ/VDc5fG6zgxGCqms5Ys=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="210" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="poisson_distribution" explicit-spec="explicit" id="B3paqYKPv3uu4qCbcnZUics2p40=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="211" class="def"/>
        <param name="p">
          <type name="double"/>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>double</mono>
          </brief>
          <param name="p">
            <text>The value to construct from</text>
          </param>
        </doc>
      </function>
      <function name="max" id="jlGkXX5WjDOylZZ3WRRCVx6shBA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="220" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="DJv5HfJgl1nwp4kS8ZjM0gU7G5M=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="219" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="fEQZ3dhoZAgMMxosof+tcEE7M5E=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="213" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="poisson_distribution" id="nFezf3JYH3WODtuRUsH1S3Drivo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="204" class="def"/>
        <base>
          <type id="GJ3G01ROSncp3ambIVFIzeYA0D4=" name="std::poisson_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template requires="(detail::valid_ratio&lt;Num, Den...&gt; &amp;&amp; detail::positive_ratio&lt;Num, Den...&gt; &amp;&amp; !detail::ratio_one&lt;Num, Den...&gt;)">
      <tparam name="F" class="type"/>
      <tparam name="Num" class="constant" type="int"/>
      <tparam name="Den" class="constant" type="int"/>
      <struct name="power" id="b9zJZIMXnBrf+fa+5JNUoGdvfkQ=">
        <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="117" class="def"/>
        <attr id="is-final"/>
        <doc>
          <brief>
            <text>Type container for exponents with ratio different than </text>
            <mono>1</mono>
          </brief>
          <para>
            <text>Ratio must be mathematically valid and non-negative. Negative exponents are passed to </text>
            <mono>per&lt;...&gt;</mono>
            <text> with inverted sign (as positive exponents).</text>
          </para>
          <para class="note">
            <mono>Den</mono>
            <text> is an optional parameter to shorten the types presented to the user in the case when </text>
            <mono>Den</mono>
            <text> equals </text>
            <mono>1</mono>
            <text>.</text>
          </para>
          <tparam name="F">
            <text>factor to be raised to specified power</text>
          </tparam>
          <tparam name="Num">
            <text>Power ratio numerator</text>
          </tparam>
          <tparam name="Den">
            <text>[</text>
            <text>optional</text>
            <text>]Power ration denominator</text>
          </tparam>
        </doc>
        <namespace-alias name="_factor_" id="6kS4AjyqOMfpG/whly9ETe8ljn8=">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="120"/>
          <type name="F"/>
        </namespace-alias>
        <variable name="_exponent_" id="lk8i5yo6laUL8qlCR2mFCYlPd7o=" default="{Num, Den...}">
          <file short-path="mp-units/framework/symbolic_expression.h" source-path="src/core/include/mp-units/framework/symbolic_expression.h" line="121" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="PbCU1JgTNy3V59F7kRQlpJEUVEo=" name="detail::ratio"/>
        </variable>
      </struct>
    </template>
    <template requires="(!Symbol.empty())">
      <tparam name="Symbol" class="constant" type="symbol_text"/>
      <tparam name="M" class="constant" type="UnitMagnitude auto"/>
      <tparam name="U" class="constant" type="PrefixableUnit auto"/>
      <struct name="prefixed_unit" id="E2OkRJo1BTB8gDNiAcZzxd7dfMw=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="413" class="def"/>
        <base>
          <type name="::_base_type_"/>
        </base>
        <doc>
          <brief>
            <text>A prefixed unit</text>
          </brief>
          <para>
            <text>Defines a new unit that is a scaled version of another unit with the scaling factor specified by a predefined prefix.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 template&lt;PrefixableUnit auto U&gt;
 struct kilo_ : prefixed_unit&lt;&quot;k&quot;, mag_power&lt;10, 3&gt;, U&gt; {};

 template&lt;PrefixableUnit auto U&gt;
 constexpr kilo_&lt;U&gt; kilo;

 inline constexpr auto kilogram = si::kilo&lt;gram&gt;;</text>
          </code>
          <tparam name="Symbol">
            <text>a prefix text to prepend to a unit symbol</text>
          </tparam>
          <tparam name="M">
            <text>scaling factor of the prefix</text>
          </tparam>
          <tparam name="U">
            <text>a named unit to be prefixed</text>
          </tparam>
        </doc>
        <namespace-alias name="_base_type_" id="SUznybuxlWw3luhvHNk+doXjN74=">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="416"/>
          <type id="E2OkRJo1BTB8gDNiAcZzxd7dfMw=" name="prefixed_unit"/>
        </namespace-alias>
        <variable name="_symbol_" id="gPE29rzlKlhPphSdz1SlT4uv0p0=" default="Symbol + U._symbol_">
          <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="417" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="R" class="constant" type="Reference auto"/>
      <tparam name="Rep" class="type"/>
      <class name="quantity" id="F8330nXRcbWoqjgcYQ6nTJawdnY=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="162" class="def"/>
        <file short-path="mp-units/framework/quantity_concepts.h" source-path="src/core/include/mp-units/framework/quantity_concepts.h" line="34"/>
        <friend id="FVq8M4jO5ogb1VLvRuro/vi2xrE=">
          <befriended id="FVq8M4jO5ogb1VLvRuro/vi2xrE="/>
        </friend>
        <friend id="dGAgnJrt1OcbU0bnyLcjVuG1htk=">
          <befriended id="dGAgnJrt1OcbU0bnyLcjVuG1htk="/>
        </friend>
        <friend id="EOYCDxYHCbdqjymmNKc8Ej41Kcs=">
          <befriended id="EOYCDxYHCbdqjymmNKc8Ej41Kcs="/>
        </friend>
        <friend id="kWCjRth9URffvU3hCLOhTDAXESk=">
          <befriended id="kWCjRth9URffvU3hCLOhTDAXESk="/>
        </friend>
        <friend id="rZIBRMi6irre9gEFxn2/c7RkRbo=">
          <befriended id="rZIBRMi6irre9gEFxn2/c7RkRbo="/>
        </friend>
        <friend id="mO8U2oL6JJ7Zlzga/ByetjIzGWQ=">
          <befriended id="mO8U2oL6JJ7Zlzga/ByetjIzGWQ="/>
        </friend>
        <friend id="W5h6VF9CyeH6DWVvWd5id+Nuq5I=">
          <befriended id="W5h6VF9CyeH6DWVvWd5id+Nuq5I="/>
        </friend>
        <friend id="PHtu6W7WnA0lznOUk7zADXmAGB8=">
          <befriended id="PHtu6W7WnA0lznOUk7zADXmAGB8="/>
        </friend>
        <friend id="AhhviGbEjtw+2aRh4dfYbP/WjV0=">
          <befriended id="AhhviGbEjtw+2aRh4dfYbP/WjV0="/>
        </friend>
        <friend id="jcmSF/IUaExGJR0Mu0QvKL+22ls=">
          <befriended id="jcmSF/IUaExGJR0Mu0QvKL+22ls="/>
        </friend>
        <friend id="3h7PF/pVQnwOKfamgKqUyn1u4Ek=">
          <befriended id="3h7PF/pVQnwOKfamgKqUyn1u4Ek="/>
        </friend>
        <friend id="nhS5TbSx0fEFQWiFwPyw0c4Tz6U=">
          <befriended id="nhS5TbSx0fEFQWiFwPyw0c4Tz6U="/>
        </friend>
        <friend id="VVgw+MhKYyxijYBa3Y7mgOcQxZw=">
          <befriended id="VVgw+MhKYyxijYBa3Y7mgOcQxZw="/>
        </friend>
        <friend id="eaZZli2brMatdJPbWu8u1i+dbWQ=">
          <befriended id="eaZZli2brMatdJPbWu8u1i+dbWQ="/>
        </friend>
        <friend id="pyEh8yQndCkDKp4iWRWGCJx1470=">
          <befriended id="pyEh8yQndCkDKp4iWRWGCJx1470="/>
        </friend>
        <friend id="NeQOivjLxwBZbBbXG5t4urlHZKA=">
          <befriended id="NeQOivjLxwBZbBbXG5t4urlHZKA="/>
        </friend>
        <friend id="taIoGz7+lUVFt47Owox+gnT+gYg=">
          <befriended id="taIoGz7+lUVFt47Owox+gnT+gYg="/>
        </friend>
        <friend id="8RXMKeBw2OR2I0rYgz9XD/ibxOA=">
          <befriended id="8RXMKeBw2OR2I0rYgz9XD/ibxOA="/>
        </friend>
        <friend id="bQbE5LsmXttrcxovW8h1nA+3r7I=">
          <befriended id="bQbE5LsmXttrcxovW8h1nA+3r7I="/>
        </friend>
        <doc>
          <brief>
            <text>A quantity</text>
          </brief>
          <para>
            <text>Property of a phenomenon, body, or substance, where the property has a magnitude that can be expressed by means of a number and a reference.</text>
          </para>
          <tparam name="R">
            <text>a reference of the quantity providing all information about quantity properties</text>
          </tparam>
          <tparam name="Rep">
            <text>a type to be used to represent values of a quantity</text>
          </tparam>
          <related>
            <reference id="fnBORtwfV395PyGuxxdpTA1Y070=">abs</reference>
            <reference id="0sBIM8sTTqoGr7vuiznGfyEwrUg=">cbrt</reference>
            <reference id="VtINvG3yRNJ4137iNzKafb3jOfQ=">ceil</reference>
            <reference id="M2LOg7IlSJ4auO+S+F8yRJqjy6Y=">epsilon</reference>
            <reference id="eVfb874GWI+Bru043gKbae5+i2E=">exp</reference>
            <reference id="nFqcqW7S93NwFNK5Rl/PXz0lb/A=">floor</reference>
            <reference id="nIpJNV+9SXI4VzNhG9lVfqhvxtw=">fma</reference>
            <reference id="pIn8GL+wmK3aZ0PmIzNURy7xo7I=">fma</reference>
            <reference id="nAKLO+MzI5UGOkizVgyTeddAOds=">fmod</reference>
            <reference id="jE42PEpZT2vwd+h+XvQhVCWqUcA=">hypot</reference>
            <reference id="4opZ6/C6RYBQMJJxUkHL4Dranrs=">hypot</reference>
            <reference id="li0JxIOUTeIEd+KL7umEXQCcPiI=">inverse</reference>
            <reference id="0+3iE4ITRw98N9KT2WSXuE/TD2s=">isfinite</reference>
            <reference id="+hj7pK3yXm3AzTDZteY08JkXK3A=">isinf</reference>
            <reference id="CR4R8pRs9CWjNN8EcKGZnB0FWCA=">isnan</reference>
            <reference id="euLmIn2b2Qg0VDAZvCUL5OXRz4Q=">operator*</reference>
            <reference id="V8OBX/tFtorVPNO6NSEK8jn0bag=">pow</reference>
            <reference id="6/UA00K5t5mVJpy2tqbV+/fqEGU=">remainder</reference>
            <reference id="5JtzptTRryPZerq8nakI4TrDIX0=">round</reference>
            <reference id="u3CbpPerqQ2pFgzr1ht8nrAuFqQ=">sqrt</reference>
            <reference id="5AmuIA/qrJM251ySwdpPFoX7rY8=">value_cast</reference>
          </related>
        </doc>
        <namespace-alias name="rep" id="x5k2AUM2uqyZAoU4SR55RZvJTb0=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="172"/>
          <type name="Rep"/>
        </namespace-alias>
        <function class="constructor" name="quantity" id="YpZcZRaopOaMs19mY9QHUP69SZE=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="194" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <doc>
            <brief>
              <text>Default constructor</text>
            </brief>
          </doc>
        </function>
        <function class="constructor" name="quantity" id="ANbyBVLDwlAV7aC+3c+hN0kHJsg=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="195" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy constructor</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <template requires="detail::QuantityConstructibleFrom&lt;quantity, quantity&lt;R2, Rep2&gt;&gt;">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function class="constructor" name="quantity" explicit-spec="explicit(!implicitly_convertible(get_quantity_spec(R2), quantity_spec) || !std::convertible_to&lt;Rep2, rep&gt;)" id="DSSN0nwmEwNBCrUlKluRdI+70Lo=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="219" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="q">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Copy constructor</text>
              </brief>
              <param name="q">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="constructor" name="quantity" id="Er7zQ2SmsyK3E27Z3GBUoWODhrY=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="196" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move constructor</text>
            </brief>
            <param name="other">
              <text>The object to move construct from</text>
            </param>
          </doc>
        </function>
        <template requires="detail::QuantityConstructibleFrom&lt;quantity, detail::quantity_like_type&lt;Q&gt;&gt;">
          <tparam name="Q" class="type"/>
          <function class="constructor" name="quantity" explicit-spec="explicit(quantity_like_traits&lt;Q&gt;::explicit_import || !std::convertible_to&lt;detail::quantity_like_type&lt;Q&gt;, quantity&lt;R, Rep&gt;&gt;)" id="ZgffHz3cKldfeTBTXxZyXTMe1yM=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="228" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="q">
              <type class="lvalue-reference">
                <pointee-type name="Q" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>Q</mono>
              </brief>
              <param name="q">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="detail::DimensionlessOne&lt;reference&gt; &amp;&amp; detail::ValuePreservingConstruction&lt;rep, FwdValue&gt;">
          <tparam name="FwdValue" class="type"/>
          <function class="constructor" name="quantity" explicit-spec="explicit(!std::convertible_to&lt;FwdValue, rep&gt;)" id="mhWdsP2SID2G78fV+S+yE/g6n4s=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="212" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="val">
              <type class="rvalue-reference">
                <pointee-type name="FwdValue"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>FwdValue</mono>
              </brief>
              <param name="val">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="(equivalent(unit, get_unit(R2{}))) &amp;&amp; detail::ValuePreservingConstruction&lt;rep, FwdValue&gt;">
          <tparam name="FwdValue" class="type"/>
          <tparam name="R2" class="type"/>
          <function class="constructor" name="quantity" id="VKg3a/SRjPtCkq1c7j9msPfVXpY=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="199" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="val">
              <type class="rvalue-reference">
                <pointee-type name="FwdValue"/>
              </type>
            </param>
            <param>
              <type name="R2"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="val">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="(!equivalent(unit, get_unit(R2{}))) &amp;&amp;
            detail::QuantityConstructibleFrom&lt;quantity, quantity&lt;R2{}, std::remove_cvref_t&lt;FwdValue&gt;&gt;&gt;">
          <tparam name="FwdValue" class="type"/>
          <tparam name="R2" class="type"/>
          <function class="constructor" name="quantity" id="Tb6xoCXggSEZIEYtYszd8DlHYD4=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="205" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="val">
              <type class="rvalue-reference">
                <pointee-type name="FwdValue"/>
              </type>
            </param>
            <param>
              <type name="R2"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="val">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="destructor" name="~quantity" id="8JsQ9BFXLKoIShLbTxynY2aFNnw=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="197" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <doc>
            <brief>
              <text>Destructor</text>
            </brief>
          </doc>
        </function>
        <function name="operator=" id="6xqBD5Rq8zZlGiUKKDJ6W+mNO6w=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="237" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to copy assign from</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="XqksIDeOtzq4cJphkd/eFzT8OOQ=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="238" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </return>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to move assign from</text>
            </param>
          </doc>
        </function>
        <template requires="detail::DimensionlessOne&lt;reference&gt; &amp;&amp; detail::ValuePreservingAssignment&lt;rep, FwdValue&gt;">
          <tparam name="FwdValue" class="type"/>
          <function name="operator=" id="/6xC0E0zbB0p0Nqj7SInmaQK6SU=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="240" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="assign" value="14"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="val">
              <type class="rvalue-reference">
                <pointee-type name="FwdValue"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="val">
                <text>The object to move assign from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::constructible_from&lt;ToRep, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <function name="force_in" id="Z5NYF7uhnhACgmPFGB95ASdQj0k=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="277" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
          </function>
        </template>
        <template requires="detail::SaneScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToU" class="type"/>
          <function name="force_in" id="BbJOI12nCZItNS/F6pPqiCzf0T8=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="270" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="std::constructible_from&lt;ToRep, rep&gt; &amp;&amp; detail::SaneScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <tparam name="ToU" class="type"/>
          <function name="force_in" id="D8i/W4RhC1cB00n38joVYx1aN1E=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="284" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="detail::SaneScaling&lt;unit, U{}, rep&gt;">
          <tparam name="U" class="type"/>
          <function name="force_numerical_value_in" exception-spec="noexcept" id="6H2bt7ixhhUoV5KwBZi6D9C8yXs=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="322" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type id="x5k2AUM2uqyZAoU4SR55RZvJTb0=" name="rep"/>
            </return>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <template requires="detail::ValuePreservingConstruction&lt;ToRep, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <function name="in" id="Z+ZV10B4BNyi8EilF0y5mDI+m6k=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="255" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
          </function>
        </template>
        <template requires="detail::ValuePreservingScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToU" class="type"/>
          <function name="in" id="E++Jefp2wAQ1AIGezJ4n0q11v3k=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="248" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="detail::ValuePreservingConstruction&lt;ToRep, rep&gt; &amp;&amp;
             detail::ValuePreservingConversion&lt;unit, rep, ToU{}, ToRep&gt;">
          <tparam name="ToRep" class="type"/>
          <tparam name="ToU" class="type"/>
          <function name="in" id="I9IbYRe/y8aIQCEi51/sCCBeQRY=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="262" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="detail::ValuePreservingScaling&lt;unit, U{}, rep&gt;">
          <tparam name="U" class="type"/>
          <function name="numerical_value_in" exception-spec="noexcept" id="dJEwOOOuj2N2kIPpahGF2/Mxnc0=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="315" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type id="x5k2AUM2uqyZAoU4SR55RZvJTb0=" name="rep"/>
            </return>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <template requires="(equivalent(U{}, unit))">
          <tparam name="U" class="type"/>
          <function name="numerical_value_ref_in" exception-spec="noexcept" id="O/JQh9MgFJ5ww6iWqjuK0HgSepQ=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="292" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="x5k2AUM2uqyZAoU4SR55RZvJTb0=" name="rep"/>
              </type>
            </return>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <template requires="(equivalent(U{}, unit))">
          <tparam name="U" class="type"/>
          <function name="numerical_value_ref_in" exception-spec="noexcept" id="a3bEIcuUG163iAnjVdco0lGhPKs=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="299" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="x5k2AUM2uqyZAoU4SR55RZvJTb0=" name="rep" cv-qualifiers="const"/>
              </type>
            </return>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <template requires="(equivalent(U{}, unit))">
          <tparam name="U" class="type"/>
          <function name="numerical_value_ref_in" exception-spec="noexcept" id="jxV9/lVRoayAOtbeniYfklB5GBg=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="306" class="def"/>
            <attr id="is-deleted"/>
            <attr id="is-deleted-as-written"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;&amp;" value="2"/>
            <return>
              <type class="rvalue-reference">
                <pointee-type id="x5k2AUM2uqyZAoU4SR55RZvJTb0=" name="rep" cv-qualifiers="const"/>
              </type>
            </return>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <template requires="(!treat_as_floating_point&lt;rep&gt;) &amp;&amp; (implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &amp;&amp;
            detail::ValuePreservingConversion&lt;get_unit(R2), Rep2, unit, rep&gt; &amp;&amp; requires(rep&amp; a, const Rep2 b) {
              { a %= b } -&gt; std::same_as&lt;rep&amp;&gt;;
            }">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function name="operator%=" id="X7Z8clmZ/3Pbwgm0u1Ek2IBvpXw=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="430" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="mod_eq" value="19"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Modulus assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="detail::ScalarValuePreservingTo&lt;typename Q2::rep, rep&gt; &amp;&amp; requires(rep&amp; a, const Q2::rep b) {
      { a *= b } -&gt; std::same_as&lt;rep&amp;&gt;;
    }">
          <tparam name="Q2" class="type"/>
          <function name="operator*=" id="futEInz55bqgd9GD845hdGJciys=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="455" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="star_eq" value="17"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type name="Q2" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Multiplication assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="requires(rep&amp; a, const Value b) {
      { a *= b } -&gt; std::same_as&lt;rep&amp;&gt;;
    }">
          <tparam name="Value" class="type"/>
          <function name="operator*=" id="0v9Dp0LnEYGNC75tyxvfmGLQRR4=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="445" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="star_eq" value="17"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="val">
              <type class="lvalue-reference">
                <pointee-type name="Value" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Multiplication assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="val">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator+" requires="requires(const rep v) {
      { +v } -&gt; std::common_with&lt;rep&gt;;
    }" id="FL7y1WMQAgumfoF8vloyuMdyOqs=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="351" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="plus" value="5"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
            </type>
          </return>
        </function>
        <function name="operator++" requires="requires(rep&amp; v) {
      { ++v } -&gt; std::same_as&lt;rep&amp;&gt;;
    }" id="8oVN3bOquk4dgEtLgSrMkGakW28=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="367" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="inc" value="37"/>
          <attr id="ref-qualifier" name="&amp;" value="1"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Increment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
          </doc>
        </function>
        <function name="operator++" requires="requires(rep&amp; v) {
      { v++ } -&gt; std::common_with&lt;rep&gt;;
    }" id="KB9+ugWYNuNpHuRZlucAuLq51mo=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="376" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="inc" value="37"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
            </type>
          </return>
          <param>
            <type name="int"/>
          </param>
        </function>
        <template requires="(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &amp;&amp;
            detail::ValuePreservingConversion&lt;get_unit(R2), Rep2, unit, rep&gt; &amp;&amp; requires(rep&amp; a, const Rep2 b) {
              { a += b } -&gt; std::same_as&lt;rep&amp;&gt;;
            }">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function name="operator+=" id="8hpVgcdiXbkNrxp902J4mZXMpCw=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="402" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="plus_eq" value="15"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Addition assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator-" requires="requires(const rep v) {
      { -v } -&gt; std::common_with&lt;rep&gt;;
    }" id="bPh7hysLmM90U6op3eJD5u4SOm8=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="359" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="minus" value="6"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
            </type>
          </return>
        </function>
        <function name="operator--" requires="requires(rep&amp; v) {
      { --v } -&gt; std::same_as&lt;rep&amp;&gt;;
    }" id="VJjGAxAz+3L9g/q3hFIixpikBWI=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="384" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="dec" value="38"/>
          <attr id="ref-qualifier" name="&amp;" value="1"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Decrement operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
          </doc>
        </function>
        <function name="operator--" requires="requires(rep&amp; v) {
      { v-- } -&gt; std::common_with&lt;rep&gt;;
    }" id="2CV14pCj8Hbz/OHG50sAHloqilQ=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="393" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="dec" value="38"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
            </type>
          </return>
          <param>
            <type name="int"/>
          </param>
        </function>
        <template requires="(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &amp;&amp;
            detail::ValuePreservingConversion&lt;get_unit(R2), Rep2, unit, rep&gt; &amp;&amp; requires(rep&amp; a, const Rep2 b) {
              { a -= b } -&gt; std::same_as&lt;rep&amp;&gt;;
            }">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function name="operator-=" id="fNDTbIDbMopko2sDUo6WfQsbIKs=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="416" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="minus_eq" value="16"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="other">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Subtraction assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="other">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="detail::ScalarValuePreservingTo&lt;typename Q2::rep, rep&gt; &amp;&amp; requires(rep&amp; a, const Q2::rep b) {
      { a /= b } -&gt; std::same_as&lt;rep&amp;&gt;;
    }">
          <tparam name="Q2" class="type"/>
          <function name="operator/=" id="lWH2ZHpXh/eKt8q94269w6df9i0=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="475" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="slash_eq" value="18"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="rhs">
              <type class="lvalue-reference">
                <pointee-type name="Q2" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Division assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="rhs">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="requires(rep&amp; a, const Value b) {
      { a /= b } -&gt; std::same_as&lt;rep&amp;&gt;;
    }">
          <tparam name="Value" class="type"/>
          <function name="operator/=" id="5fVw2AX6JmUcFOjqzOADOUY5+jc=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="464" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="slash_eq" value="18"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
              </type>
            </return>
            <param name="val">
              <type class="lvalue-reference">
                <pointee-type name="Value" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Division assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="val">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="detail::QuantityConstructibleFrom&lt;detail::quantity_like_type&lt;Q&gt;, quantity&gt;">
          <tparam name="Q_" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;Q_&gt;"/>
          <function class="conversion" name="operator " exception-spec="noexcept(noexcept(quantity_like_traits&lt;Q&gt;::from_numerical_value(this-&gt;numerical_value_is_an_implementation_detail_)) &amp;&amp; std::is_nothrow_copy_constructible_v&lt;rep&gt;)" explicit-spec="explicit(quantity_like_traits&lt;Q&gt;::explicit_export || !std::convertible_to&lt;quantity&lt;R, Rep&gt;, detail::quantity_like_type&lt;Q&gt;&gt;)" id="DZbZqd5XPmDBdVbflp4ehYPGbNE=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="337" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type name="Q_"/>
            </return>
            <doc>
              <brief>
                <text>Conversion to </text>
                <mono>Q_</mono>
              </brief>
              <returns>
                <text>The object converted to </text>
                <mono>Q_</mono>
              </returns>
            </doc>
          </function>
        </template>
        <template requires="detail::DimensionlessOne&lt;reference&gt;">
          <tparam name="V_" class="type"/>
          <tparam name="Value" class="type" default="std::remove_cvref_t&lt;V_&gt;"/>
          <function class="conversion" name="operator " exception-spec="noexcept" explicit-spec="explicit" id="/XgCB4HQgcz8tedRRAr63FotfFs=">
            <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="330" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type name="V_"/>
            </return>
            <doc>
              <brief>
                <text>Conversion to </text>
                <mono>V_</mono>
              </brief>
              <returns>
                <text>The object converted to </text>
                <mono>V_</mono>
              </returns>
            </doc>
          </function>
        </template>
        <function name="max" exception-spec="noexcept" requires="requires { representation_values&lt;rep&gt;::max(); }" id="RxuLssRu1Cy6rVU6YSSlJuFRPO8=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="187" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
          </return>
        </function>
        <function name="min" exception-spec="noexcept" requires="requires { representation_values&lt;rep&gt;::min(); }" id="8GpDUC3b0UORf5atZXunAtMoZ7k=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="181" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
          </return>
        </function>
        <function name="zero" exception-spec="noexcept" requires="requires { representation_values&lt;rep&gt;::zero(); }" id="Neqkc/2brnVrwQLmtmTKPMjvq7A=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="175" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity"/>
          </return>
        </function>
        <variable name="numerical_value_is_an_implementation_detail_" id="ESWwRKArQW0o1iKGMx0tDmWop08=">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="165"/>
          <type name="Rep"/>
          <doc>
            <brief>
              <text>needs to be public for a structural type</text>
            </brief>
          </doc>
        </variable>
        <variable name="dimension" id="vqxP/BvghagSPFWeOyYKE+kDgfI=" default="quantity_spec.dimension">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="170" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Dimension">
          </type>
        </variable>
        <variable name="quantity_spec" id="0ZT3+Lx6G0vkebsB3v4D82tcar4=" default="get_quantity_spec(reference)">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="169" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </variable>
        <variable name="reference" id="LwF4hgW9sMoROquc+PXEfDMtu+w=" default="R">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="168" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Reference">
          </type>
        </variable>
        <variable name="unit" id="Pijmy6i9sNe+yP59Txdhi6iaEqc=" default="get_unit(reference)">
          <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="171" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </variable>
      </class>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <struct name="quantity_like_traits" id="QsFQ9XgkFjnof7Tm+FRPuNgr7DI=">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="154"/>
        <doc>
          <brief>
            <text>Provides support for external quantity-like types</text>
          </brief>
          <para>
            <text>The type trait should provide the </text>
            <mono>reference</mono>
            <text> object, a type alias </text>
            <mono>rep,</mono>
            <text> and static member functions </text>
            <mono>to_numerical_value(T)</mono>
            <text> that returns the raw value of the quantity and </text>
            <mono>from_numerical_value(rep)</mono>
            <text> that returns </text>
            <mono>T</mono>
            <text> from </text>
            <mono>rep.</mono>
          </para>
          <para>
            <text>If the following expression is </text>
            <mono>true,</mono>
            <text> the specified conversion will be explicit: - </text>
            <mono>explicit_import</mono>
            <text> for the conversion from </text>
            <mono>T</mono>
            <text> to a </text>
            <mono>quantity</mono>
            <text> type, - </text>
            <mono>explicit_export</mono>
            <text> for the conversion from a </text>
            <mono>quantity</mono>
            <text> type to </text>
            <mono>T.</mono>
          </para>
          <para>
            <text>Usage example can be found in </text>
            <mono>mp-units/systems/si/chrono.h</mono>
            <text> header file.</text>
          </para>
          <tparam name="T">
            <text>the type to provide support for</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <template>
      <tparam name="R" class="constant" type="Reference auto"/>
      <tparam name="PO" class="constant" type="PointOriginFor&lt;get_quantity_spec(R)&gt; auto"/>
      <tparam name="Rep" class="type"/>
      <class name="quantity_point" id="jf+8of/tnFFu23NUqpOVB7bc4+U=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="183" class="def"/>
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="78"/>
        <friend id="0o19y6W7abRl3BdK1vkPi48NMtY=">
          <befriended id="0o19y6W7abRl3BdK1vkPi48NMtY="/>
        </friend>
        <friend id="EcANxYNtTAVyrn/+V2W8uvXaBPc=">
          <befriended id="EcANxYNtTAVyrn/+V2W8uvXaBPc="/>
        </friend>
        <friend id="dWwWspeQfBitnhot+dZiO0jrY7Y=">
          <befriended id="dWwWspeQfBitnhot+dZiO0jrY7Y="/>
        </friend>
        <friend id="Ce+LE0q3lSHCfq1dGE9n9Fd9VEk=">
          <befriended id="Ce+LE0q3lSHCfq1dGE9n9Fd9VEk="/>
        </friend>
        <friend id="ZfbayLOCRW1iA907HRKgj0vogWI=">
          <befriended id="ZfbayLOCRW1iA907HRKgj0vogWI="/>
        </friend>
        <friend id="WZ3d+GsTBh+7qyvqcDSA4+b4iNw=">
          <befriended id="WZ3d+GsTBh+7qyvqcDSA4+b4iNw="/>
        </friend>
        <friend id="CR2fWF4x43WEcLoo+KnoW0ZSIOw=">
          <befriended id="CR2fWF4x43WEcLoo+KnoW0ZSIOw="/>
        </friend>
        <friend id="pdxlVdbp2S6ikam02OovQMvXQZ8=">
          <befriended id="pdxlVdbp2S6ikam02OovQMvXQZ8="/>
        </friend>
        <doc>
          <brief>
            <text>A quantity point</text>
          </brief>
          <para>
            <text>An absolute quantity measured from an origin.</text>
          </para>
          <tparam name="R">
            <text>a reference of the quantity point providing all information about quantity properties</text>
          </tparam>
          <tparam name="PO">
            <text>a type that represents the origin point from which the quantity point is measured from</text>
          </tparam>
          <tparam name="Rep">
            <text>a type to be used to represent values of a quantity point</text>
          </tparam>
          <related>
            <reference id="uIj3HjNrMhCnSmQadL6t5nrGltU=">isfinite</reference>
            <reference id="TUhWb1+EKY5azBAKDApgofuyMwE=">isinf</reference>
            <reference id="gjCTnHolRlZqgnTL+YR46gOz3N0=">isnan</reference>
            <reference id="mRn/EiKLcRS/E05wduoOfc/E/UY=">lerp</reference>
            <reference id="ZEaJM6t9pw94zlf6TPfoNclXdQI=">midpoint</reference>
            <reference id="IVRUjAd2Ki/jmzIm2tmudWEQJ+M=">value_cast</reference>
          </related>
        </doc>
        <namespace-alias name="quantity_type" id="S9YsDXR9sJWzUn74gMOeCem0o/I=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="195"/>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;reference, Rep&gt;"/>
        </namespace-alias>
        <namespace-alias name="rep" id="DeFILWHWRA8InTaWHsBLSEFH6Bc=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="194"/>
          <type name="Rep"/>
        </namespace-alias>
        <function class="constructor" name="quantity_point" id="fnuXE2MnGAagI4+WbBZeRzLSguM=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="213" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <doc>
            <brief>
              <text>Default constructor</text>
            </brief>
          </doc>
        </function>
        <function class="constructor" name="quantity_point" id="R/qr66n9cEq8kJ1zP1Pfnte/Ahk=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="214" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy constructor</text>
            </brief>
            <param name="other">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="quantity_point" id="3RubND/mHhwfJ9pHVMdMmawL+nM=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="215" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move constructor</text>
            </brief>
            <param name="other">
              <text>The object to move construct from</text>
            </param>
          </doc>
        </function>
        <template requires="(quantity_point_like_traits&lt;QP&gt;::point_origin == point_origin) &amp;&amp;
            std::constructible_from&lt;quantity_type, quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference,
                                                            typename quantity_point_like_traits&lt;QP&gt;::rep&gt;&gt;">
          <tparam name="QP" class="type"/>
          <function class="constructor" name="quantity_point" explicit-spec="explicit(quantity_point_like_traits&lt;QP&gt;::explicit_import || !std::convertible_to&lt;quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference, typename quantity_point_like_traits&lt;QP&gt;::rep&gt;, quantity_type&gt;)" id="AvK/lA3FsBCR0Jfu9KEPwBG9Bmk=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="253" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="qp">
              <type class="lvalue-reference">
                <pointee-type name="QP" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>QP</mono>
              </brief>
              <param name="qp">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::constructible_from&lt;quantity_type, typename QP::quantity_type&gt;">
          <tparam name="QP" class="type"/>
          <function class="constructor" name="quantity_point" explicit-spec="explicit(!std::convertible_to&lt;typename QP::quantity_type, quantity_type&gt;)" id="JYWVfE/vfme2ZqY7rwej8yVFPnw=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="240" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="qp">
              <type class="lvalue-reference">
                <pointee-type name="QP" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>QP</mono>
              </brief>
              <param name="qp">
                <text>The object to copy construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::constructible_from&lt;quantity_type, FwdQ&gt; &amp;&amp; (point_origin == default_point_origin(R))">
          <tparam name="FwdQ" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function class="constructor" name="quantity_point" explicit-spec="explicit" id="CSR/7jzpZFpBvWigjt1K6rXpgi8=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="218" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Construct from </text>
                <mono>FwdQ</mono>
              </brief>
              <param name="q">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::constructible_from&lt;quantity_type, FwdQ&gt;">
          <tparam name="FwdQ" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function class="constructor" name="quantity_point" id="ezBPxRUe2bZmvasPv4Ke7jRZCN8=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="224" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
            <param>
              <type class="decltype" operand="PO">
              </type>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="q">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <template requires="std::constructible_from&lt;quantity_type, FwdQ&gt; &amp;&amp; detail::SameAbsolutePointOriginAs&lt;PO2, PO&gt;">
          <tparam name="FwdQ" class="type"/>
          <tparam name="PO2" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function class="constructor" name="quantity_point" id="VSP3Wt18EouhAhnB24KHjvb5BNc=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="231" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
            <param>
              <type name="PO2"/>
            </param>
            <doc>
              <brief>
                <text>Constructor</text>
              </brief>
              <param name="q">
                <text>The object to move construct from</text>
              </param>
            </doc>
          </function>
        </template>
        <function class="destructor" name="~quantity_point" id="t/LF9fKEwRdsHdnXLn36kB7tZ4I=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="216" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <doc>
            <brief>
              <text>Destructor</text>
            </brief>
          </doc>
        </function>
        <function name="operator=" id="Mi/v8sI/454gNf6UfaN/jHbaABY=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="268" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </return>
          <param name="other">
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Copy assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to copy assign from</text>
            </param>
          </doc>
        </function>
        <function name="operator=" id="haqbNuFSQA9OX/p/c/V1gRwjGC0=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="269" class="def"/>
          <attr id="is-defaulted"/>
          <attr id="is-explicitly-defaulted"/>
          <attr id="operator" name="assign" value="14"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </return>
          <param name="other">
            <type class="rvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Move assignment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
            <param name="other">
              <text>The object to move assign from</text>
            </param>
          </doc>
        </function>
        <template requires="std::constructible_from&lt;ToRep, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <function name="force_in" id="ourzjGbK2229az0r79tYjGprDkI=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="361" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
          </function>
        </template>
        <template requires="detail::SaneScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToU" class="type"/>
          <function name="force_in" id="uIVnWgIXGaWM6qINwjrW69WpRXo=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="354" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="std::constructible_from&lt;ToRep, rep&gt; &amp;&amp; detail::SaneScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <tparam name="ToU" class="type"/>
          <function name="force_in" id="NSo1yeC2LjD8hzFiRsy8vTYYJGA=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="368" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="detail::ValuePreservingConstruction&lt;ToRep, rep&gt;">
          <tparam name="ToRep" class="type"/>
          <function name="in" id="3m4tqDs51YldCffiBHBWHkpTCho=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="339" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
          </function>
        </template>
        <template requires="detail::ValuePreservingScaling&lt;unit, ToU{}, rep&gt;">
          <tparam name="ToU" class="type"/>
          <function name="in" id="zGTRDabctwvh7JHUuOBe386G9QQ=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="332" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <template requires="detail::ValuePreservingConstruction&lt;ToRep, rep&gt; &amp;&amp;
             detail::ValuePreservingConversion&lt;unit, rep, ToU{}, ToRep&gt;">
          <tparam name="ToRep" class="type"/>
          <tparam name="ToU" class="type"/>
          <function name="in" id="oOAZVS/AIhkETo+JNQS36KHALk8=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="346" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;quantity_spec&gt;">
              </type>
            </return>
            <param>
              <type name="ToU"/>
            </param>
          </function>
        </template>
        <function name="operator++" requires="requires { ++quantity_from_origin_is_an_implementation_detail_; }" id="i3bI/VZglr8RMMI+Um6seSZQN4k=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="413" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="inc" value="37"/>
          <attr id="ref-qualifier" name="&amp;" value="1"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Increment operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
          </doc>
        </function>
        <function name="operator++" requires="requires { quantity_from_origin_is_an_implementation_detail_++; }" id="P1tM848fYMykfkLv+B+++YKkp9I=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="420" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="inc" value="37"/>
          <attr id="nodiscard"/>
          <return>
            <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
          </return>
          <param>
            <type name="int"/>
          </param>
          <doc>
            <brief>
              <text>Increment operator</text>
            </brief>
            <returns>
              <text>Another instance of the object</text>
            </returns>
          </doc>
        </function>
        <template requires="(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &amp;&amp;
            detail::ValuePreservingConversion&lt;get_unit(R2), Rep2, unit, rep&gt; &amp;&amp;
            requires(const quantity_type q) { quantity_from_origin_is_an_implementation_detail_ += q; }">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function name="operator+=" id="9C3awzy5pOihQi4YbuRSizvrW7k=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="440" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="plus_eq" value="15"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
              </type>
            </return>
            <param name="q">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Addition assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="q">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <function name="operator--" requires="requires { --quantity_from_origin_is_an_implementation_detail_; }" id="3yf3ILpQdzwkJBMv/R/OWPeb0qQ=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="426" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="dec" value="38"/>
          <attr id="ref-qualifier" name="&amp;" value="1"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
            </type>
          </return>
          <doc>
            <brief>
              <text>Decrement operator</text>
            </brief>
            <returns>
              <text>Reference to the current object</text>
            </returns>
          </doc>
        </function>
        <function name="operator--" requires="requires { quantity_from_origin_is_an_implementation_detail_--; }" id="NJAfSShdQDYaKvXnNoGhf0s00Q8=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="433" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="operator" name="dec" value="38"/>
          <attr id="nodiscard"/>
          <return>
            <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
          </return>
          <param>
            <type name="int"/>
          </param>
          <doc>
            <brief>
              <text>Decrement operator</text>
            </brief>
            <returns>
              <text>Another instance of the object</text>
            </returns>
          </doc>
        </function>
        <template requires="(implicitly_convertible(get_quantity_spec(R2), quantity_spec)) &amp;&amp;
            detail::ValuePreservingConversion&lt;get_unit(R2), Rep2, unit, rep&gt; &amp;&amp;
            requires(const quantity_type q) { quantity_from_origin_is_an_implementation_detail_ -= q; }">
          <tparam name="R2" class="constant" type="auto"/>
          <tparam name="Rep2" class="type"/>
          <function name="operator-=" id="T6vofLyH43PGFThsDGFc2HmHRmg=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="450" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="minus_eq" value="16"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
              </type>
            </return>
            <param name="q">
              <type class="lvalue-reference">
                <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
              </type>
            </param>
            <doc>
              <brief>
                <text>Subtraction assignment operator</text>
              </brief>
              <returns>
                <text>Reference to the current object</text>
              </returns>
              <param name="q">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <template>
          <tparam name="NewPO" class="type"/>
          <function name="point_for" id="eKXuLBvwUGIvRJBqzKatvQCPYsU=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="271" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;(NewPO{})&gt;">
              </type>
            </return>
            <param name="new_origin">
              <type name="NewPO"/>
            </param>
          </function>
        </template>
        <template requires="requires(const quantity_point qp) { qp - PO2{}; }">
          <tparam name="PO2" class="type"/>
          <function name="quantity_from" id="SWQMU72dsErX62EuJz0cMEyaoa4=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="304" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="Quantity">
              </type>
            </return>
            <param>
              <type name="PO2"/>
            </param>
          </function>
        </template>
        <template>
          <tparam name="QP" class="type"/>
          <function name="quantity_from" id="/BuqGVuzBk9Bc60yXiZY525+4tI=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="311" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type class="auto" keyword="auto" constraint="Quantity">
              </type>
            </return>
            <param name="qp">
              <type class="lvalue-reference">
                <pointee-type name="QP" cv-qualifiers="const"/>
              </type>
            </param>
          </function>
        </template>
        <function name="quantity_from_zero" id="piXB7NymKs5j049oya85r4qI+Ro=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="317" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="auto" keyword="auto" constraint="Quantity">
            </type>
          </return>
        </function>
        <template requires="(PO2{} == point_origin)">
          <tparam name="PO2" class="type"/>
          <function name="quantity_ref_from" exception-spec="noexcept" id="Tf/uiX3RcMDuEq8VkctBJQIrTrw=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="281" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="S9YsDXR9sJWzUn74gMOeCem0o/I=" name="quantity_type"/>
              </type>
            </return>
            <param>
              <type name="PO2"/>
            </param>
          </function>
        </template>
        <template requires="(PO2{} == point_origin)">
          <tparam name="PO2" class="type"/>
          <function name="quantity_ref_from" exception-spec="noexcept" id="EOXgSA4eHgkkccJKr4ud6IgRzso=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="288" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type class="lvalue-reference">
                <pointee-type id="S9YsDXR9sJWzUn74gMOeCem0o/I=" name="quantity_type" cv-qualifiers="const"/>
              </type>
            </return>
            <param>
              <type name="PO2"/>
            </param>
          </function>
        </template>
        <template requires="(PO2{} == point_origin)">
          <tparam name="PO2" class="type"/>
          <function name="quantity_ref_from" exception-spec="noexcept" id="z5WIwEulbZUaQzz/wyP5zLN8gu8=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="295" class="def"/>
            <attr id="is-deleted"/>
            <attr id="is-deleted-as-written"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;&amp;" value="2"/>
            <return>
              <type class="rvalue-reference">
                <pointee-type id="S9YsDXR9sJWzUn74gMOeCem0o/I=" name="quantity_type" cv-qualifiers="const"/>
              </type>
            </return>
            <param>
              <type name="PO2"/>
            </param>
          </function>
        </template>
        <template requires="(point_origin == quantity_point_like_traits&lt;QP&gt;::point_origin) &amp;&amp;
            std::convertible_to&lt;quantity_type, quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference,
                                                        typename quantity_point_like_traits&lt;QP&gt;::rep&gt;&gt;">
          <tparam name="QP_" class="type"/>
          <tparam name="QP" class="type" default="std::remove_cvref_t&lt;QP_&gt;"/>
          <function class="conversion" name="operator " exception-spec="noexcept(noexcept(quantity_point_like_traits&lt;QP&gt;::from_numerical_value(this-&gt;quantity_from_origin_is_an_implementation_detail_.numerical_value_is_an_implementation_detail_)) &amp;&amp; std::is_nothrow_copy_constructible_v&lt;rep&gt;)" explicit-spec="explicit(quantity_point_like_traits&lt;QP&gt;::explicit_export || !std::convertible_to&lt;quantity_type, quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference, typename quantity_point_like_traits&lt;QP&gt;::rep&gt;&gt;)" id="FynYpSqUM2cqWzcgPaCay+oaK8c=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="376" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="is-const"/>
            <attr id="ref-qualifier" name="&amp;" value="1"/>
            <attr id="nodiscard"/>
            <return>
              <type name="QP_"/>
            </return>
            <doc>
              <brief>
                <text>Conversion to </text>
                <mono>QP_</mono>
              </brief>
              <returns>
                <text>The object converted to </text>
                <mono>QP_</mono>
              </returns>
            </doc>
          </function>
        </template>
        <template requires="(point_origin == quantity_point_like_traits&lt;QP&gt;::point_origin) &amp;&amp;
            std::convertible_to&lt;quantity_type, quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference,
                                                        typename quantity_point_like_traits&lt;QP&gt;::rep&gt;&gt;">
          <tparam name="QP_" class="type"/>
          <tparam name="QP" class="type" default="std::remove_cvref_t&lt;QP_&gt;"/>
          <function class="conversion" name="operator " exception-spec="noexcept(noexcept(quantity_point_like_traits&lt;QP&gt;::from_numerical_value(this-&gt;quantity_from_origin_is_an_implementation_detail_.numerical_value_is_an_implementation_detail_)) &amp;&amp; std::is_nothrow_move_constructible_v&lt;rep&gt;)" explicit-spec="explicit(quantity_point_like_traits&lt;QP&gt;::explicit_export || !std::convertible_to&lt;quantity_type, quantity&lt;quantity_point_like_traits&lt;QP&gt;::reference, typename quantity_point_like_traits&lt;QP&gt;::rep&gt;&gt;)" id="RNzKXY6/UerMGI4hK04VkRZ7c9U=">
            <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="394" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="ref-qualifier" name="&amp;&amp;" value="2"/>
            <attr id="nodiscard"/>
            <return>
              <type name="QP_"/>
            </return>
            <doc>
              <brief>
                <text>Conversion to </text>
                <mono>QP_</mono>
              </brief>
              <returns>
                <text>The object converted to </text>
                <mono>QP_</mono>
              </returns>
            </doc>
          </function>
        </template>
        <function name="max" exception-spec="noexcept" requires="requires { quantity_type::max(); }" id="uSNBSaKMzcH1w7qHTZpZmw62src=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="206" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
          </return>
        </function>
        <function name="min" exception-spec="noexcept" requires="requires { quantity_type::min(); }" id="oW2QeM0PE67jEfWtuq2LJhj9sVg=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="200" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="nodiscard"/>
          <return>
            <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point"/>
          </return>
        </function>
        <variable name="quantity_from_origin_is_an_implementation_detail_" id="WcPtFH50vHqB8Bj9vYikjH8KM/k=">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="197"/>
          <type id="S9YsDXR9sJWzUn74gMOeCem0o/I=" name="quantity_type"/>
        </variable>
        <variable name="absolute_point_origin" id="5AhK8RPb7X9F51MA34JcoIIiotg=" default="detail::get_absolute_point_origin(PO)">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="192" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="PointOrigin">
          </type>
        </variable>
        <variable name="dimension" id="NYJDUXfbSIbvfNeccNB3ENAxNJ8=" default="quantity_spec.dimension">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="190" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Dimension">
          </type>
        </variable>
        <variable name="point_origin" id="KGyIfYyi78woVKCWOexu/c/DnqI=" default="PO">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="193" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="PointOrigin">
          </type>
        </variable>
        <variable name="quantity_spec" id="CZdDRcV+1aUblNsIdxLy2EhaGhY=" default="get_quantity_spec(reference)">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="189" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </variable>
        <variable name="reference" id="whJ2yFExjI0fUcjmDzGzQZQyHG0=" default="R">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="188" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Reference">
          </type>
        </variable>
        <variable name="unit" id="MhO8XmjRZm+UbX2FOlnf/F7UWy0=" default="get_unit(reference)">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="191" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </variable>
      </class>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <struct name="quantity_point_like_traits" id="zt+38kF/WeWb6XqZx3gCPW7ydrM=">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="173"/>
        <doc>
          <brief>
            <text>Provides support for external quantity point-like types</text>
          </brief>
          <para>
            <text>The type trait should provide nested </text>
            <mono>reference</mono>
            <text> and </text>
            <mono>origin</mono>
            <text> objects, a type alias </text>
            <mono>rep,</mono>
            <text> and static member functions </text>
            <mono>to_numerical_value(T)</mono>
            <text> that returns the raw value of the the quantity being the offset of the point from the origin and </text>
            <mono>from_numerical_value(rep)</mono>
            <text> that returns </text>
            <mono>T</mono>
            <text> formed this raw value.</text>
          </para>
          <para>
            <text>If the following expression is </text>
            <mono>true,</mono>
            <text> the specified conversion will be explicit: - </text>
            <mono>explicit_import</mono>
            <text> for the conversion from </text>
            <mono>T</mono>
            <text> to a </text>
            <mono>quantity_point</mono>
            <text> type, - </text>
            <mono>explicit_export</mono>
            <text> for the conversion from a </text>
            <mono>quantity_point</mono>
            <text> type to </text>
            <mono>T.</mono>
          </para>
          <para>
            <text>Usage example can be found in </text>
            <mono>mp-units/systems/si/chrono.h</mono>
            <text> header file.</text>
          </para>
          <tparam name="T">
            <text>the type to provide support for</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <template>
      <tparam class="constant" type="auto"/>
      <struct name="quantity_spec" id="lFfFmGPkgfj4cwr//D1NrE2dCp4=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="60"/>
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="267"/>
      </struct>
    </template>
    <template class="partial" id="lFfFmGPkgfj4cwr//D1NrE2dCp4=">
      <tparam name="Dim" class="constant" type="NamedQuantitySpec auto"/>
      <tparam name="Args" class="constant" type="QSProperty auto"/>
      <targ class="constant" value="QS"/>
      <targ class="constant" value="Args"/>
      <struct name="quantity_spec" id="prqxhz+kXl4yXusfUA6oCLY6UKs=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="310" class="def"/>
        <base>
          <type id="ziTiDiHdPWTUlvE4mFSVZiorZf0=" name="detail::quantity_spec_interface"/>
        </base>
        <namespace-alias name="_base_type_" id="mWMRWVc6f4/6CTBQNdjGae1opRs=">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="315"/>
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="356"/>
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="414"/>
          <type id="prqxhz+kXl4yXusfUA6oCLY6UKs=" name="quantity_spec"/>
        </namespace-alias>
        <template requires="(mp_units::explicitly_convertible(Q::quantity_spec, Self{}))">
          <tparam name="Self" class="type"/>
          <tparam name="FwdQ" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function name="operator()" id="Am38VXYL53s6wCO0aRAQoWQuqzc=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="214" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Quantity">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
          </function>
        </template>
        <template>
          <tparam name="Self" class="type"/>
          <tparam name="U" class="type"/>
          <function name="operator[]" id="Bf1Vtuql+zma6iodreFCLaVVGSQ=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="208" class="def"/>
            <attr id="constexpr-kind" name="consteval" value="2"/>
            <attr id="operator" name="subs" value="43"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Reference">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <variable name="_equation_" id="jkaWvJ4II1qBLsYARJFlLzRs+1s=" default="Eq">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="357" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_parent_" id="AA2/7I1hUYloM9Swj81/u/f1Xwg=" default="QS">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="415" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="character" id="f4YSMopnXczYfxRJB0GzWU4B/cA=" default="detail::quantity_character_init&lt;Args...&gt;(QS.character)">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="317" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="fUIg3fDfqV03756UYVJwtU6yegQ=" name="quantity_character"/>
        </variable>
        <variable name="dimension" id="lSv6OVoI5RTK1YLc2tHioHmCPfc=" default="_parent_.dimension">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="316" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Dimension">
          </type>
        </variable>
      </struct>
    </template>
    <template class="partial" requires="(explicitly_convertible(Eq, QS))" id="lFfFmGPkgfj4cwr//D1NrE2dCp4=">
      <tparam name="QS" class="constant" type="NamedQuantitySpec auto"/>
      <tparam name="Eq" class="constant" type="DerivedQuantitySpec auto"/>
      <tparam name="Args" class="constant" type="QSProperty auto"/>
      <targ class="constant" value="QS"/>
      <targ class="constant" value="Eq"/>
      <targ class="constant" value="Args"/>
      <struct name="quantity_spec" id="oIUU6c6PHzr4iIU2FUobvAJOC+w=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="469" class="def"/>
        <base>
          <type id="ziTiDiHdPWTUlvE4mFSVZiorZf0=" name="detail::quantity_spec_interface"/>
        </base>
        <namespace-alias name="_base_type_" id="+zzRDxN/HPjLLyh6fnPTIYdX/gY=">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="476"/>
          <type id="oIUU6c6PHzr4iIU2FUobvAJOC+w=" name="quantity_spec"/>
        </namespace-alias>
        <template requires="(mp_units::explicitly_convertible(Q::quantity_spec, Self{}))">
          <tparam name="Self" class="type"/>
          <tparam name="FwdQ" class="type"/>
          <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
          <function name="operator()" id="Am38VXYL53s6wCO0aRAQoWQuqzc=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="214" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="call" value="42"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Quantity">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param name="q">
              <type class="rvalue-reference">
                <pointee-type name="FwdQ"/>
              </type>
            </param>
          </function>
        </template>
        <template>
          <tparam name="Self" class="type"/>
          <tparam name="U" class="type"/>
          <function name="operator[]" id="Bf1Vtuql+zma6iodreFCLaVVGSQ=">
            <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="208" class="def"/>
            <attr id="constexpr-kind" name="consteval" value="2"/>
            <attr id="operator" name="subs" value="43"/>
            <attr id="nodiscard"/>
            <attr id="is-explicit-object-member-function"/>
            <return>
              <type class="auto" keyword="auto" constraint="Reference">
              </type>
            </return>
            <param>
              <type name="Self"/>
            </param>
            <param>
              <type name="U"/>
            </param>
          </function>
        </template>
        <variable name="_equation_" id="KuN8REZ0y+yAfb9KrrSVEqRl1TY=" default="Eq">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="478" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="_parent_" id="5ZXjYj3CCK3XukER97Hdi7tvfJI=" default="QS">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="477" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="character" id="atj/g6b1ptFb545IZfynp+Nl1bg=" default="detail::quantity_character_init&lt;Args...&gt;(Eq.character)">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="483" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type id="fUIg3fDfqV03756UYVJwtU6yegQ=" name="quantity_character"/>
        </variable>
        <variable name="dimension" id="8JuQqflNHjauRwBe2A9ukyHWjHg=" default="_parent_.dimension">
          <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="479" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="Dimension">
          </type>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <tparam name="U" class="type"/>
      <struct name="reference" id="siSlJnnERPivPzD7ox9u9S+grLA=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="77" class="def"/>
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="33"/>
        <friend id="7oheAG8NAIlTc5wBKwJOvUP1h1s=">
          <befriended id="7oheAG8NAIlTc5wBKwJOvUP1h1s="/>
        </friend>
        <friend id="/JNzIzM/ujp5allMBSlMLF8z1AA=">
          <befriended id="/JNzIzM/ujp5allMBSlMLF8z1AA="/>
        </friend>
        <friend id="ts9f84z8LQSNEtTXSpMBKrhX0Dc=">
          <befriended id="ts9f84z8LQSNEtTXSpMBKrhX0Dc="/>
        </friend>
        <friend id="vUBXgnkTggAwveJqRmfDENVdPEc=">
          <befriended id="vUBXgnkTggAwveJqRmfDENVdPEc="/>
        </friend>
        <friend id="1o0nLTQ7vNR3GD8vZBBkbrdg1sE=">
          <befriended id="1o0nLTQ7vNR3GD8vZBBkbrdg1sE="/>
        </friend>
        <friend id="5zZLkmL9Ot/1LyQPXe/lz6473Uk=">
          <befriended id="5zZLkmL9Ot/1LyQPXe/lz6473Uk="/>
        </friend>
        <friend id="0wCzHv6Rkaoc2pHySXHFl7ommb8=">
          <befriended id="0wCzHv6Rkaoc2pHySXHFl7ommb8="/>
        </friend>
        <friend id="K+KIPCFagL6AIy1ABvCZwzKxDbM=">
          <befriended id="K+KIPCFagL6AIy1ABvCZwzKxDbM="/>
        </friend>
        <friend id="9wRihde669gaZo7FFsSmYNpbPgY=">
          <befriended id="9wRihde669gaZo7FFsSmYNpbPgY="/>
        </friend>
        <friend id="Udh7//0qOGn5zOAZrooDLlEUhs0=">
          <befriended id="Udh7//0qOGn5zOAZrooDLlEUhs0="/>
        </friend>
        <friend id="L8Lk7t+BNqduI6RbtFcW0PBhEqk=">
          <befriended id="L8Lk7t+BNqduI6RbtFcW0PBhEqk="/>
        </friend>
        <friend id="cSNzqg9awp0x7Gp5AYlU/H3mg2g=">
          <befriended id="cSNzqg9awp0x7Gp5AYlU/H3mg2g="/>
        </friend>
        <doc>
          <brief>
            <text>Quantity reference type</text>
          </brief>
          <para>
            <text>Quantity reference describes all the properties of a quantity besides its representation type.</text>
          </para>
          <para>
            <text>In most cases this class template is not explicitly instantiated by the user. It is implicitly instantiated by the library&apos;s framework while binding a quantity specification with a compatible unit.</text>
          </para>
          <code>
            <text>{.cpp}
 Reference auto kmph = isq::speed[km / h];
 QuantityOf&lt;isq::speed[km / h]&gt; auto speed = 90 * kmph;</text>
          </code>
          <para>
            <text>The following syntaxes are not allowed: </text>
            <mono>2 / kmph</mono>
            <text>, </text>
            <mono>kmph * 3</mono>
            <text>, </text>
            <mono>kmph / 4</mono>
            <text>, </text>
            <mono>70 * isq::length[km] / isq:time[h]</mono>
            <text>.</text>
          </para>
        </doc>
      </struct>
    </template>
    <template>
      <tparam name="QP" class="constant" type="QuantityPoint auto"/>
      <struct name="relative_point_origin" id="wlF8NscmLLsTFBVZTuiIhhizMUg=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="125" class="def"/>
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="53"/>
        <base>
          <type id="FqnVPR7/CZHvaBukul7xMvjiu4M=" name="detail::point_origin_interface"/>
        </base>
        <variable name="_absolute_point_origin_" id="GCc4miNEiJNyr+m7KPNJ4tvqc2A=" default="QP.absolute_point_origin">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="135" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="PointOrigin">
          </type>
        </variable>
        <variable name="_quantity_point_" id="sagw+/PsBk07qAYeFo/tr+90prM=" default="QP">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="127" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </variable>
        <variable name="_quantity_spec_" id="sWhr90zDG07e/H8RB1OsIYZJrqc=" default="[]() {
    // select the strongest of specs
    if constexpr (detail::QuantityKindSpec&lt;MP_UNITS_NONCONST_TYPE(QP.quantity_spec)&gt;)
      return QP.point_origin._quantity_spec_;
    else
      return QP.quantity_spec;
  }()">
          <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="128" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </variable>
      </struct>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <struct name="representation_values" id="kQy/El1WAc19H5z2Enjtb3LwEl4=">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="101" class="def"/>
        <base>
          <type id="C2tt3gCsczibUDZxeM6z2qOgK8c=" name="std::chrono::duration_values&lt;Rep&gt;"/>
        </base>
        <doc>
          <brief>
            <text>A type trait that defines zero, one, min, and max for a representation type</text>
          </brief>
          <para>
            <text>The zero, one, min, and max member functions in mp_units::quantity forward their work to these methods. This type can be specialized if the representation Rep requires a specific implementation to return these quantity objects.</text>
          </para>
          <tparam name="Rep">
            <text>a representation type for which a type trait is defined</text>
          </tparam>
        </doc>
        <function name="one" exception-spec="noexcept" requires="std::constructible_from&lt;Rep, int&gt;" id="NQpZSj6tYuIte31qfbzMThI1Ols=">
          <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="129" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="storage-class" name="static" value="2"/>
          <return>
            <type name="Rep"/>
          </return>
        </function>
      </struct>
    </template>
    <template requires="(M != detail::unit_magnitude&lt;&gt;{} &amp;&amp; M != mag&lt;1&gt;)">
      <tparam name="M" class="constant" type="UnitMagnitude auto"/>
      <tparam name="U" class="type"/>
      <struct name="scaled_unit" id="sLbUmNGlu+EJ52J0n1KfxA923Ko=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="246" class="def"/>
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="134"/>
        <attr id="is-final"/>
        <base>
          <type id="G5oyU/96M6P9saKM7jUG3gbkLzQ=" name="detail::scaled_unit_impl&lt;M, U&gt;"/>
        </base>
        <doc>
          <brief>
            <text>Unit being a scaled version of another unit</text>
          </brief>
          <para class="note">
            <text>User should not instantiate this type! It is not exported from the C++ module. The library will instantiate this type automatically based on the unit arithmetic equation provided by the user.</text>
          </para>
          <tparam name="M">
            <text>magnitude describing the scale factor</text>
          </tparam>
          <tparam name="U">
            <text>reference unit being scaled</text>
          </tparam>
        </doc>
      </struct>
    </template>
    <struct name="student_t_distribution" id="u0uFGYQ1T1xjIv+crQXQ2aaFM2k=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="416" class="def"/>
      <base>
        <type id="Bi1cFwuSzlk1fHuhiiJe+RsnT1Y=" name="std::student_t_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="dWej+pVkrqw+CiSUDc90IQWYKcE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="418"/>
        <type id="Bi1cFwuSzlk1fHuhiiJe+RsnT1Y=" name="std::student_t_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="AU1RPMuCjjCrqwCU643xicl/lS0=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="417"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="student_t_distribution" id="fwEc0SKfuD5ozjgxjUOzYhAXP6Q=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="420" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="student_t_distribution" explicit-spec="explicit" id="abQ8SRa8fZaj2zBnb8pUGkbWg0Y=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="421" class="def"/>
        <param name="n">
          <type class="lvalue-reference">
            <pointee-type id="AU1RPMuCjjCrqwCU643xicl/lS0=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Construct from </text>
            <mono>rep</mono>
          </brief>
          <param name="n">
            <text>The object to copy construct from</text>
          </param>
        </doc>
      </function>
      <function name="max" id="omV4kAE+s/cbsU4/aZmatLJnA54=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="430" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="EPXSFNIPPe/3nmxbqKS7bS9Y6Ls=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="429" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="HpBhoIuBmBS46iiMES50B6nwRgI=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="423" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="student_t_distribution" id="xjSKdko8Ilw8VEqJvpCL+G3yXCQ=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="414" class="def"/>
        <base>
          <type id="Bi1cFwuSzlk1fHuhiiJe+RsnT1Y=" name="std::student_t_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <tparam name="M" class="constant" type="std::size_t"/>
      <class name="symbol_text" id="MtIPwOHjim6LNMowN3XHq980sEU=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="98" class="def"/>
        <friend id="olSgDDrWJbJiIJPCT9n5mwO5Y2M=">
          <befriended id="olSgDDrWJbJiIJPCT9n5mwO5Y2M="/>
        </friend>
        <friend id="vJg8Yqmb6i47amna5RKIXcOBn24=">
          <befriended id="vJg8Yqmb6i47amna5RKIXcOBn24="/>
        </friend>
        <friend id="4ey+ag1urbLGWAr13dca66uWzIw=">
          <befriended id="4ey+ag1urbLGWAr13dca66uWzIw="/>
        </friend>
        <doc>
          <brief>
            <text>A symbol text representation</text>
          </brief>
          <para>
            <text>This class template is responsible for definition and handling of a symbol text representation. In the libary it is used to define symbols of units and prefixes. Each symbol can have two versions: UTF-8 and portable.</text>
          </para>
          <tparam name="N">
            <text>The size of a UTF-8 symbol</text>
          </tparam>
          <tparam name="M">
            <text>The size of the portable symbol</text>
          </tparam>
        </doc>
        <function class="constructor" name="symbol_text" explicit-spec="explicit(false)" id="UCmlye6R/FqIsdKBPMpIug1e5+Q=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="105" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="ch">
            <type name="char"/>
          </param>
          <doc>
            <brief>
              <text>Construct from </text>
              <mono>char</mono>
            </brief>
            <param name="ch">
              <text>The value to construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="symbol_text" explicit-spec="explicit(false)" id="86ARkv+dGLktZ70J5Yyl58xNZrM=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="119" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="txt">
            <type class="lvalue-reference">
              <pointee-type id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=" name="fixed_string&lt;N&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from </text>
              <mono>fixed_string</mono>
            </brief>
            <param name="txt">
              <text>The object to copy construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="symbol_text" explicit-spec="explicit(false)" id="qtPG48HFn1S3oOq5/vdfoY/KJso=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="111" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <param name="txt">
            <type class="lvalue-reference">
              <pointee-type class="array" bounds="N + 1">
                <element-type name="char" cv-qualifiers="const"/>
              </pointee-type>
            </type>
          </param>
          <doc>
            <brief>
              <text>Construct from </text>
              <mono>char</mono>
            </brief>
            <param name="txt">
              <text>The value to construct from</text>
            </param>
          </doc>
        </function>
        <function class="constructor" name="symbol_text" id="xQQhBgFeZoe7hO/yy7jEcWOfWm8=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="132" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <param name="utf8">
            <type class="lvalue-reference">
              <pointee-type id="EKxgkugk3wT5zsZHALMguwAyC9M=" name="fixed_u8string&lt;N&gt;" cv-qualifiers="const"/>
            </type>
          </param>
          <param name="portable">
            <type class="lvalue-reference">
              <pointee-type id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=" name="fixed_string&lt;M&gt;" cv-qualifiers="const"/>
            </type>
          </param>
        </function>
        <function class="constructor" name="symbol_text" id="SJUGB90a26mlGQyQVQQiukiFrPw=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="125" class="def"/>
          <attr id="constexpr-kind" name="consteval" value="2"/>
          <param name="u">
            <type class="lvalue-reference">
              <pointee-type class="array" bounds="N + 1">
                <element-type name="char8_t" cv-qualifiers="const"/>
              </pointee-type>
            </type>
          </param>
          <param name="a">
            <type class="lvalue-reference">
              <pointee-type class="array" bounds="M + 1">
                <element-type name="char" cv-qualifiers="const"/>
              </pointee-type>
            </type>
          </param>
        </function>
        <function name="ascii" id="RMQOfksK+Y893QuDGchiWNXnSTY=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="141" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type class="auto" cv-qualifiers="const" keyword="auto">
              </pointee-type>
            </type>
          </return>
        </function>
        <function name="empty" id="FqIlYyFt+6V88ZjBebT7qyfWj58=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="143" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type name="bool"/>
          </return>
        </function>
        <function name="portable" id="klhpOc0l36tTutfPLwA87J+Kspo=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="139" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type class="auto" cv-qualifiers="const" keyword="auto">
              </pointee-type>
            </type>
          </return>
        </function>
        <function name="unicode" id="cOfUW5ede2fsIEo+6NvVIlHyG5o=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="140" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type class="auto" cv-qualifiers="const" keyword="auto">
              </pointee-type>
            </type>
          </return>
        </function>
        <function name="utf8" id="Bsh9G2coGlkM7ijEN/wfwsHSt54=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="138" class="def"/>
          <attr id="constexpr-kind" name="constexpr" value="1"/>
          <attr id="is-const"/>
          <attr id="nodiscard"/>
          <return>
            <type class="lvalue-reference">
              <pointee-type class="auto" cv-qualifiers="const" keyword="auto">
              </pointee-type>
            </type>
          </return>
        </function>
        <variable name="portable_" id="41MHOnRWHfXBFsJQJ+LW4u78unI=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="102"/>
          <type id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=" name="fixed_string&lt;M&gt;"/>
        </variable>
        <variable name="utf8_" id="3VvOY7xQarCO50BDxaaEbS6XHlM=">
          <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="101"/>
          <type id="EKxgkugk3wT5zsZHALMguwAyC9M=" name="fixed_u8string&lt;N&gt;"/>
        </variable>
      </class>
    </template>
    <template requires="(!MP_UNITS_ASSOCIATED_UNIT_T(decltype(CoU))) || (CoU == one)">
      <tparam name="Q" class="constant" type="QuantitySpec auto"/>
      <tparam name="CoU" class="constant" type="Unit auto"/>
      <struct name="system_reference" id="HnITOz1f4+9LN+GfdNAglgdnL50=">
        <file short-path="mp-units/framework/system_reference.h" source-path="src/core/include/mp-units/framework/system_reference.h" line="65" class="def"/>
        <doc>
          <brief>
            <text>System-specific reference</text>
          </brief>
          <para>
            <text>This type is used in rare cases where more than one base quantity in a specific system of units uses the same unit. For example in a hypothetical system of natural units where constant for speed of light </text>
            <mono>c = 1</mono>
            <text>, length and time could be measured in seconds. In such cases </text>
            <mono>system_reference</mono>
            <text> has to be used to explicitly express such a binding.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 // hypothetical natural system of units for c=1

 inline constexpr struct second final : named_unit&lt;&quot;s&quot;&gt; {} second;
 inline constexpr struct minute final : named_unit&lt;&quot;min&quot;, mag&lt;60&gt; * second&gt; {} minute;
 inline constexpr struct gram final : named_unit&lt;&quot;g&quot;&gt; {} gram;
 inline constexpr auto kilogram = si::kilo&lt;gram&gt;;

 inline constexpr struct time : system_reference&lt;isq::time, second&gt; {} time;
 inline constexpr struct length : system_reference&lt;isq::length, second&gt; {} length;
 inline constexpr struct speed : system_reference&lt;isq::speed, second / second&gt; {} speed;
 inline constexpr struct force : system_reference&lt;isq::force, kilogram / second&gt; {} force;</text>
          </code>
          <tparam name="Q">
            <text>quantity for which a unit is being assigned</text>
          </tparam>
          <tparam name="CoU">
            <text>coherent unit for a quantity in this system</text>
          </tparam>
        </doc>
        <template>
          <tparam name="U" class="type"/>
          <function name="operator[]" id="BXGRCch9rBAZhpqYeFafHt3GrmI=">
            <file short-path="mp-units/framework/system_reference.h" source-path="src/core/include/mp-units/framework/system_reference.h" line="71" class="def"/>
            <attr id="constexpr-kind" name="constexpr" value="1"/>
            <attr id="operator" name="subs" value="43"/>
            <attr id="is-const"/>
            <attr id="nodiscard"/>
            <return>
              <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;decltype(Q), U&gt;"/>
            </return>
            <param name="rhs">
              <type name="U"/>
            </param>
            <doc>
              <brief>
                <text>Subscript operator</text>
              </brief>
              <returns>
                <text>Quantity reference type</text>
              </returns>
              <param name="rhs">
                <text>The right operand</text>
              </param>
            </doc>
          </function>
        </template>
        <variable name="coherent_unit" id="kHIipCiWScsaA8OVQ9ddi5aq7oM=" default="CoU">
          <file short-path="mp-units/framework/system_reference.h" source-path="src/core/include/mp-units/framework/system_reference.h" line="69" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
        <variable name="quantity_spec" id="xjkTqGjlJU3YcvKciJFKyruuMQE=" default="Q">
          <file short-path="mp-units/framework/system_reference.h" source-path="src/core/include/mp-units/framework/system_reference.h" line="68" class="def"/>
          <attr id="storage-class" name="static" value="2"/>
          <attr id="is-inline"/>
          <attr id="is-constexpr"/>
          <type class="auto" keyword="auto">
          </type>
        </variable>
      </struct>
    </template>
    <struct name="uniform_int_distribution" id="j/OahOPVHiF+kGZWHkN61GYHwy8=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="95" class="def"/>
      <base>
        <type id="Gm2AljhuF5PCatqu6gO4O0uZpmA=" name="std::uniform_int_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="NLm2NyuyfGKuWgjnUhL7ptNNpWI=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="97"/>
        <type id="Gm2AljhuF5PCatqu6gO4O0uZpmA=" name="std::uniform_int_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="D/QVKUIvFY/9pEu5xtPASl8aDAA=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="96"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="uniform_int_distribution" id="aEJhLC5QDgqsl8hI6SuzJn+cAIw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="99" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="uniform_int_distribution" id="d3y+HOHolJg8nAEtCHAUgFTF+Qc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="100" class="def"/>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="a" id="PSC1KAyFn7QiZ2lo5T5MIzH2EHY=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="111" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="b" id="tELbU3JdFlFtD511NtU+6q8nCfQ=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="112" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="Eg9eXpTJZWEn0va4Vkf/bPGAzN4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="115" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="gnAi9rCHFSoI78Vf/HTy3wsKhtc=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="114" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="U97aOviyzLnJ7qzZgYAhcoHfKPk=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="105" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::integral&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="uniform_int_distribution" id="4X3cu2N7YdCoM5epOjosfpU4sXU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="93" class="def"/>
        <base>
          <type id="Gm2AljhuF5PCatqu6gO4O0uZpmA=" name="std::uniform_int_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="uniform_real_distribution" id="xSGLQc4/vR5CNnOST9Dt0trNgh0=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="120" class="def"/>
      <base>
        <type id="/xPWDHvpzJXb8cyzTyt76X5Bnv8=" name="std::uniform_real_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="1ewDvzK6ccl/Yh8eNvmZMkZdYm4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="122"/>
        <type id="/xPWDHvpzJXb8cyzTyt76X5Bnv8=" name="std::uniform_real_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="KDeZLXzh2TWk2bsj1cxjtwgtpmo=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="121"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="uniform_real_distribution" id="TfXAhhi8yrsmtTKLdHGTVpx8J/g=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="124" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="uniform_real_distribution" id="L+ZN0n1lv+cgQq2euJPGfB8fKns=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="125" class="def"/>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="a" id="X5bApgx3xm5b/vsbmNbNQSIXzOg=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="136" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="b" id="gTo4m6mBNPjXDDzkgtUaBpClag4=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="137" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="max" id="nYj4Qo6Ogr0pyTXxD6Dw1Mbg57k=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="140" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="IoCFNKK24nYaqJFCGXpkruZUV6Q=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="139" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="ei3QpOxEkytZXOlytxuM0nSCpWM=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="130" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="uniform_real_distribution" id="WOCmwen2+x1rEfhQ1xe+Aa2V6gE=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="118" class="def"/>
        <base>
          <type id="/xPWDHvpzJXb8cyzTyt76X5Bnv8=" name="std::uniform_real_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <struct name="unit_symbol_formatting" id="Xedc3mCrgSIyRddyxx/ZxYtyaGg=">
      <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="56" class="def"/>
      <variable name="char_set" id="ge6Zf05s+aPugRuV0U07YpDKe2I=" default="character_set::default_character_set">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="59"/>
        <type id="OkYR13gJx4Gk7BZVu8mqIVDevuA=" name="character_set"/>
      </variable>
      <variable name="separator" id="ZsjnXr3ARmBFaYpVDyWHd9lgYjQ=" default="unit_symbol_separator::default_separator">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="69"/>
        <type id="7Ldlzy6Glya4tZkUPNrOkCKwLyE=" name="unit_symbol_separator"/>
      </variable>
      <variable name="solidus" id="XEGr0XBtZhg+NMdtxaBvDZ0sagQ=" default="unit_symbol_solidus::default_solidus">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="68"/>
        <type id="DXrgdoQb1fnL/QShP0DdHBT20is=" name="unit_symbol_solidus"/>
      </variable>
    </struct>
    <struct name="weibull_distribution" id="1frZgkLfccYpbQhra0zLaNNiIOM=">
      <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="263" class="def"/>
      <base>
        <type id="jqxNPqMdXS3yRGYMSFVvmUy+fjo=" name="std::weibull_distribution&lt;Q::rep&gt;"/>
      </base>
      <namespace-alias name="base" id="bQBvsxT7VGRrA2DmnCiTwzoONDU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="265"/>
        <type id="jqxNPqMdXS3yRGYMSFVvmUy+fjo=" name="std::weibull_distribution&lt;rep&gt;"/>
      </namespace-alias>
      <namespace-alias name="rep" id="6ofImJKFA/bqGUHMMRAYEMVtQag=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="264"/>
        <type name="Q::rep"/>
      </namespace-alias>
      <function class="constructor" name="weibull_distribution" id="eDPw0UNc4rRaXjkf7Ib+rge1b6M=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="267" class="def"/>
        <doc>
          <brief>
            <text>Default constructor</text>
          </brief>
        </doc>
      </function>
      <function class="constructor" name="weibull_distribution" id="YVZXm+xfUloiBQ81Gfwxk6nYeGY=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="268" class="def"/>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="6ofImJKFA/bqGUHMMRAYEMVtQag=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="6ofImJKFA/bqGUHMMRAYEMVtQag=" name="rep" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
      <function name="max" id="J8+peEpJ6NBw95UH+Ha+SAvfhzw=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="277" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <function name="min" id="8KAMkaG8HePK1hdPm9I2BuWvCDk=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="276" class="def"/>
        <attr id="is-const"/>
        <attr id="nodiscard"/>
        <return>
          <type name="Q"/>
        </return>
      </function>
      <template>
        <tparam name="Generator" class="type"/>
        <function name="operator()" id="GW5u2hIjgOLr3u26G99QlruaD7o=">
          <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="270" class="def"/>
          <attr id="operator" name="call" value="42"/>
          <return>
            <type name="Q"/>
          </return>
          <param name="g">
            <type class="lvalue-reference">
              <pointee-type name="Generator"/>
            </type>
          </param>
        </function>
      </template>
    </struct>
    <template requires="std::floating_point&lt;typename Q::rep&gt;">
      <tparam name="Q" class="type"/>
      <struct name="weibull_distribution" id="QIgnjqWI/3W4apTukiVRGvR7DmU=">
        <file short-path="mp-units/random.h" source-path="src/core/include/mp-units/random.h" line="261" class="def"/>
        <base>
          <type id="jqxNPqMdXS3yRGYMSFVvmUy+fjo=" name="std::weibull_distribution&lt;Q::rep&gt;"/>
        </base>
      </struct>
    </template>
    <template>
      <tparam name="QS" class="constant" type="QuantitySpec auto"/>
      <struct name="zeroth_point_origin_" id="4gzSuJ3vcj7I1i8+nx3QU1WEDxs=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="138" class="def"/>
        <attr id="is-final"/>
        <base>
          <type id="/k6QE5ju7rzbNu2vzELUDbY3IHU=" name="absolute_point_origin&lt;QS&gt;"/>
        </base>
      </struct>
    </template>
    <enum name="character_set" class="scoped" id="OkYR13gJx4Gk7BZVu8mqIVDevuA=">
      <base>
        <type id="Kx7cNlH3cpNW7rnm92uu0Cc+bf0=" name="int8_t"/>
      </base>
      <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="47" class="def"/>
      <enum-constant name="utf8" initializer="0" id="Kg5mYy54uaXOfYPtbGcQEqu4nHk=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="48"/>
      </enum-constant>
      <enum-constant name="unicode" initializer="0" id="K4SNjfpSiUlGRlHVUCkcusMuecg=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="49"/>
      </enum-constant>
      <enum-constant name="portable" initializer="1" id="K3pbOROnlbx0wvJcJkkyAtVVvmI=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="50"/>
      </enum-constant>
      <enum-constant name="ascii" initializer="1" id="m8uHp4aMr6vsaORt4Prb1BNgEkE=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="51"/>
      </enum-constant>
      <enum-constant name="default_character_set" initializer="0" id="A8rnDYxx7RzhZAepL+0iUQd0yYA=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="52"/>
      </enum-constant>
      <enum-constant name="default_encoding" initializer="0" id="apxL0SeOVNMTl01Uugm1hpUXdHI=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="53"/>
      </enum-constant>
    </enum>
    <enum name="quantity_character" class="scoped" id="fUIg3fDfqV03756UYVJwtU6yegQ=">
      <base>
        <type id="Kx7cNlH3cpNW7rnm92uu0Cc+bf0=" name="int8_t"/>
      </base>
      <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="84" class="def"/>
      <doc>
        <brief>
          <text>Quantity character</text>
        </brief>
        <para>
          <text>Scalars, vectors and tensors are mathematical objects that can be used to denote certain physical quantities and their values. They are as such independent of the particular choice of a coordinate system, whereas each scalar component of a vector or a tensor and each component vector and component tensor depend on that choice.</text>
        </para>
        <para>
          <text>A scalar is a physical quantity that has magnitude but no direction. It might be a real or complex number which affects which operations are allowed on a quantity.</text>
        </para>
        <para>
          <text>Vectors are physical quantities that possess both magnitude and direction and whose operations obey the axioms of a vector space.</text>
        </para>
        <para>
          <text>Tensors can be used to describe more general physical quantities. For example, the Cauchy stress tensor possess magnitude, direction, and orientation qualities.</text>
        </para>
      </doc>
      <enum-constant name="real_scalar" initializer="0" id="jC0DlND+YGbYr8tR0cxQbj8hRhY=">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="84"/>
      </enum-constant>
      <enum-constant name="complex_scalar" initializer="1" id="bXiw9lMSk30lxuupnmRaam2EqlY=">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="84"/>
      </enum-constant>
      <enum-constant name="vector" initializer="2" id="/dPJCBfI7xIsFUSheYL5DgBOrhU=">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="84"/>
      </enum-constant>
      <enum-constant name="tensor" initializer="3" id="t8TpHqXmCRmEXkHKOyRClRTy9KE=">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="84"/>
      </enum-constant>
    </enum>
    <enum name="unit_symbol_separator" class="scoped" id="7Ldlzy6Glya4tZkUPNrOkCKwLyE=">
      <base>
        <type id="Kx7cNlH3cpNW7rnm92uu0Cc+bf0=" name="int8_t"/>
      </base>
      <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="50" class="def"/>
      <enum-constant name="space" initializer="0" id="eGUTc306VtGO7rOy94X9NzgQT+0=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="51"/>
      </enum-constant>
      <enum-constant name="half_high_dot" initializer="1" id="/Usxs6D2zE/kfOXxCWJesjsOt5g=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="52"/>
      </enum-constant>
      <enum-constant name="default_separator" initializer="0" id="2yV3xRBukcim87tdD8ng7ILMl1c=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="53"/>
      </enum-constant>
    </enum>
    <enum name="unit_symbol_solidus" class="scoped" id="DXrgdoQb1fnL/QShP0DdHBT20is=">
      <base>
        <type id="Kx7cNlH3cpNW7rnm92uu0Cc+bf0=" name="int8_t"/>
      </base>
      <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="42" class="def"/>
      <enum-constant name="one_denominator" initializer="0" id="rMn/AZ/fN+aHelNHA7nx9XlsLlI=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="43"/>
      </enum-constant>
      <enum-constant name="always" initializer="1" id="Yjy8KTSav1LnrSvwkpAkTImsPA4=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="44"/>
      </enum-constant>
      <enum-constant name="never" initializer="2" id="8RnJDoaDHrJHdjMOiZrOsOdquKA=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="45"/>
      </enum-constant>
      <enum-constant name="default_solidus" initializer="0" id="vEFkS1H6GvuKz8oHVOEGgBBgzHQ=">
        <file short-path="mp-units/framework/unit_symbol_formatting.h" source-path="src/core/include/mp-units/framework/unit_symbol_formatting.h" line="46"/>
      </enum-constant>
    </enum>
    <template requires="requires(Rep v) { abs(v); } || requires(Rep v) { std::abs(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="abs" exception-spec="noexcept" id="fnBORtwfV395PyGuxxdpTA1Y070=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="57" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the absolute value of a quantity</text>
          </brief>
          <returns>
            <text>Quantity The absolute value of a provided quantity</text>
          </returns>
          <param name="q">
            <text>Quantity being the base of the operation</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="From" class="type"/>
      <tparam name="To" class="type"/>
      <function name="castable" id="TmaTSCYM7LkPmogx8Mfb1dZkXnc=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1111" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="from">
          <type name="From"/>
        </param>
        <param name="to">
          <type name="To"/>
        </param>
      </function>
    </template>
    <function name="cbrt" id="VLVrsfQbEvGnebKryJxxBTDPP4A=">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="216" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="QuantitySpec">
        </type>
      </return>
      <param name="d">
        <type name="auto"/>
      </param>
      <doc>
        <brief>
          <text>Computes the cubic root of a dimension</text>
        </brief>
        <returns>
          <text>Dimension The result of computation</text>
        </returns>
        <returns>
          <text>QuantitySpec The result of computation</text>
        </returns>
        <returns>
          <text>Unit The result of computation</text>
        </returns>
        <param name="d">
          <text>Dimension being the base of the operation</text>
        </param>
        <param name="q">
          <text>Quantity specification being the base of the operation</text>
        </param>
        <param name="u">
          <text>Unit being the base of the operation</text>
        </param>
      </doc>
    </function>
    <function name="cbrt" id="7oheAG8NAIlTc5wBKwJOvUP1h1s=">
      <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="185" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;cbrt(Q{}), cbrt(U{})&gt;"/>
      </return>
      <param>
        <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
      </param>
    </function>
    <template requires="requires(Rep v) { cbrt(v); } || requires(Rep v) { std::cbrt(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="cbrt" exception-spec="noexcept" id="0sBIM8sTTqoGr7vuiznGfyEwrUg=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="123" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;cbrt(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the cubic root of a quantity</text>
          </brief>
          <para>
            <text>Both the quantity value and its quantity specification are the base of the operation.</text>
          </para>
          <returns>
            <text>Quantity The result of computation</text>
          </returns>
          <param name="q">
            <text>Quantity being the base of the operation</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="To" class="constant" type="Unit auto"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="ceil" exception-spec="noexcept" requires="requires { q.force_in(To); } &amp;&amp;
           ((treat_as_floating_point&lt;Rep&gt; &amp;&amp; (requires(Rep v) { ceil(v); } || requires(Rep v) { std::ceil(v); })) ||
            (!treat_as_floating_point&lt;Rep&gt; &amp;&amp; requires { representation_values&lt;Rep&gt;::one(); }))" id="VtINvG3yRNJ4137iNzKafb3jOfQ=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="359" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;detail::clone_reference_with&lt;To&gt;(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the smallest quantity with integer representation and unit type To with its number not less than q</text>
          </brief>
          <returns>
            <text>Quantity The rounded quantity with unit type To</text>
          </returns>
          <param name="q">
            <text>A quantity</text>
          </param>
          <tparam name="q">
            <text>Quantity being the base of the operation</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Vs" class="constant" type="auto"/>
      <function name="contains" id="yFSXwHjRY6UTwaE4pvGFaRHkj1I=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="128" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
      </function>
    </template>
    <template>
      <tparam name="T" class="template">
        <tparam class="type"/>
      </tparam>
      <tparam name="Ts" class="type"/>
      <function name="contains" id="HnpFJ3wru3OWWBwONlBWaTwLr/c=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="134" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
      </function>
    </template>
    <template>
      <tparam name="T" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <tparam name="Ts" class="type"/>
      <function name="contains" id="wX6SVqpG/1CZIgNSYRwZkqJu4EQ=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="140" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
      </function>
    </template>
    <function name="cubic" id="NsPd6Ob2BpwJUaeATktVGIC/Ph8=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="652" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="Unit">
        </type>
      </return>
      <param name="u">
        <type name="auto"/>
      </param>
      <doc>
        <brief>
          <text>Computes the cubic power of a unit</text>
        </brief>
        <returns>
          <text>Unit The result of computation</text>
        </returns>
        <param name="u">
          <text>Unit being the base of the operation</text>
        </param>
      </doc>
    </function>
    <template>
      <tparam name="R" class="type"/>
      <function name="default_point_origin" id="8dI8VDlK6Rj0m0V+2g2uG2YPRQE=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="152" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="PointOriginFor&lt;get_quantity_spec(R{})&gt;">
          </type>
        </return>
        <param>
          <type name="R"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="fmt" class="constant" type="dimension_symbol_formatting" default="dimension_symbol_formatting{}"/>
      <tparam name="CharT" class="type" default="char"/>
      <tparam name="D" class="type"/>
      <function name="dimension_symbol" id="0N4KGx2rMFpgv0IvinNCJEcK4cw=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="314" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type id="oSFJcVc2/y4UVv2i2KJmYkq0irI=" name="std::basic_string_view&lt;CharT&gt;"/>
        </return>
        <param>
          <type name="D"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="CharT" class="type" default="char"/>
      <tparam name="Out" class="type"/>
      <tparam name="D" class="type"/>
      <function name="dimension_symbol_to" id="fjopLS7ftEtJ9HUE5pj59EV9wtw=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="288" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <return>
          <type name="Out"/>
        </return>
        <param name="out">
          <type name="Out"/>
        </param>
        <param name="d">
          <type name="D"/>
        </param>
        <param name="fmt" default="dimension_symbol_formatting{}">
          <type class="lvalue-reference">
            <pointee-type id="ID8GQ+rVFkp35Kev6cwx6XXDruM=" name="dimension_symbol_formatting" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="RepresentationOf&lt;Rep, get_quantity_spec(R{})&gt; &amp;&amp; requires { std::numeric_limits&lt;Rep&gt;::epsilon(); }">
      <tparam name="Rep" class="type"/>
      <tparam name="R" class="type"/>
      <function name="epsilon" exception-spec="noexcept" id="M2LOg7IlSJ4auO+S+F8yRJqjy6Y=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="322" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R{}, Rep&gt;"/>
        </return>
        <param name="r">
          <type name="R"/>
        </param>
        <doc>
          <brief>
            <text>Returns the epsilon of the quantity</text>
          </brief>
          <para>
            <text>The returned value is defined by a .</text>
          </para>
          <returns>
            <text>Quantity The epsilon value for quantity&apos;s representation type</text>
          </returns>
          <tparam name="Q">
            <text>Quantity type being the base of the operation</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep v) { exp(v); } || requires(Rep v) { std::exp(v); }">
      <tparam name="R" class="constant" type="ReferenceOf&lt;dimensionless&gt; auto"/>
      <tparam name="Rep" class="type"/>
      <function name="exp" id="eVfb874GWI+Bru043gKbae5+i2E=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="139" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes Euler&apos;s raised to the given power</text>
          </brief>
          <para class="note">
            <text>Such an operation has sense only for a dimensionless quantity.</text>
          </para>
          <returns>
            <text>Quantity The value of the same quantity type</text>
          </returns>
          <param name="q">
            <text>Quantity being the base of the operation</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="From" class="type"/>
      <tparam name="To" class="type"/>
      <function name="explicitly_convertible" id="WY2e1MYgN4zICwPbrOh3CPst2Nc=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1105" class="def"/>
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="69"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="from">
          <type name="From"/>
        </param>
        <param name="to">
          <type name="To"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="To" class="constant" type="Unit auto"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="floor" exception-spec="noexcept" requires="requires { q.force_in(To); } &amp;&amp;
           ((treat_as_floating_point&lt;Rep&gt; &amp;&amp; (requires(Rep v) { floor(v); } || requires(Rep v) { std::floor(v); })) ||
            (!treat_as_floating_point&lt;Rep&gt; &amp;&amp; requires { representation_values&lt;Rep&gt;::one(); }))" id="nFqcqW7S93NwFNK5Rl/PXz0lb/A=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="337" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;detail::clone_reference_with&lt;To&gt;(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the largest quantity with integer representation and unit type To with its number not greater than q</text>
          </brief>
          <returns>
            <text>Quantity The rounded quantity with unit type To</text>
          </returns>
          <param name="q">
            <text>A quantity</text>
          </param>
          <tparam name="q">
            <text>Quantity being the base of the operation</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires { get_common_quantity_spec(get_quantity_spec(R) * get_quantity_spec(S), get_quantity_spec(T)); } &amp;&amp;
           (equivalent(get_unit(R) * get_unit(S), get_unit(T))) &amp;&amp; requires(Rep1 v1, Rep2 v2, Rep3 v3) {
             requires requires { fma(v1, v2, v3); } || requires { std::fma(v1, v2, v3); };
           }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="S" class="constant" type="auto"/>
      <tparam name="T" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="Rep2" class="type"/>
      <tparam name="Rep3" class="type"/>
      <function name="fma" exception-spec="noexcept" id="nIpJNV+9SXI4VzNhG9lVfqhvxtw=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="239" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;get_common_quantity_spec(get_quantity_spec(R) * get_quantity_spec(S), get_quantity_spec(T))&gt;">
          </type>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;S, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;T, Rep3&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the fma of 3 quantities</text>
          </brief>
          <returns>
            <text>Quantity: The nearest floating point representable to ax+b</text>
          </returns>
          <param name="a:">
            <text>Multiplicand</text>
          </param>
          <param name="x:">
            <text>Multiplicand</text>
          </param>
          <param name="b:">
            <text>Addend</text>
          </param>
          <param name="a">
            <text>A quantity</text>
          </param>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="b">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires { get_common_quantity_spec(get_quantity_spec(R) * get_quantity_spec(S), get_quantity_spec(T)); } &amp;&amp;
           (equivalent(get_unit(R) * get_unit(S), get_unit(T))) &amp;&amp; requires(Rep1 v1, Rep2 v2, Rep3 v3) {
             requires requires { fma(v1, v2, v3); } || requires { std::fma(v1, v2, v3); };
           }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="S" class="constant" type="auto"/>
      <tparam name="T" class="constant" type="auto"/>
      <tparam name="Origin" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="Rep2" class="type"/>
      <tparam name="Rep3" class="type"/>
      <function name="fma" exception-spec="noexcept" id="pIn8GL+wmK3aZ0PmIzNURy7xo7I=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="263" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;get_common_quantity_spec(get_quantity_spec(R) * get_quantity_spec(S), get_quantity_spec(T))&gt;">
          </type>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;S, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;T, Origin, Rep3&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the fma of 2 quantities and a quantity point</text>
          </brief>
          <returns>
            <text>QuantityPoint: The nearest floating point representable to ax+b</text>
          </returns>
          <param name="a:">
            <text>Multiplicand</text>
          </param>
          <param name="x:">
            <text>Multiplicand</text>
          </param>
          <param name="b:">
            <text>Addend</text>
          </param>
          <param name="a">
            <text>A quantity</text>
          </param>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="b">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep1 v1, Rep2 v2) {
    get_common_reference(R1, R2);
    requires requires { fmod(v1, v2); } || requires { std::fmod(v1, v2); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="fmod" exception-spec="noexcept" id="nAKLO+MzI5UGOkizVgyTeddAOds=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="282" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;get_quantity_spec(R1)&gt;">
          </type>
        </return>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R1, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="y">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the floating-point remainder of the division operation x / y.</text>
          </brief>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="y">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="V" class="constant" type="same_as&lt;T&gt; auto"/>
      <function name="get" id="OU+DWH0epLma7e7MEfhHYSOcajg=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="146" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <template requires="is_specialization_of&lt;T1, T&gt;">
      <tparam name="T" class="template">
        <tparam class="type"/>
      </tparam>
      <tparam name="T1" class="type"/>
      <function name="get" id="G0QykpVyW+mIDekBUrFlTbkdOtI=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="161" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <template requires="is_specialization_of_v&lt;T1, T&gt;">
      <tparam name="T" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <tparam name="T1" class="type"/>
      <function name="get" id="X3IKf/c+SNa7ofk4GROHlJmFdFU=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="177" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="V1" class="constant" type="auto"/>
      <tparam name="V2" class="constant" type="auto"/>
      <tparam name="Vs" class="constant" type="auto"/>
      <function name="get" id="dglwo/AvmthumN7GlPQZ9xQ3ZRA=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="152" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <template>
      <tparam name="T" class="template">
        <tparam class="type"/>
      </tparam>
      <tparam name="T1" class="type"/>
      <tparam name="T2" class="type"/>
      <tparam name="Ts" class="type"/>
      <function name="get" id="PW3NwlP4DBUAb3TiOYhfRS9icVM=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="168" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <template>
      <tparam name="T" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <tparam name="T1" class="type"/>
      <tparam name="T2" class="type"/>
      <tparam name="Ts" class="type"/>
      <function name="get" id="W4i/mbF6+1+PW+JysRU2KNCns5o=">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="184" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
      </function>
    </template>
    <function name="get_canonical_unit" id="PHECgMVxpugHfemSQtbh0fSsmjg=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="129" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto">
        </type>
      </return>
      <param name="u">
        <type name="auto"/>
      </param>
    </function>
    <function name="get_common_quantity_spec" id="T6GeTGEHNyOqc4w2Qr3QOrMAWSk=">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1258" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="QuantitySpec">
        </type>
      </return>
      <param name="q">
        <type name="auto"/>
      </param>
    </function>
    <template requires="(detail::have_common_quantity_spec(Q1{}, Q2{}))">
      <tparam name="Q1" class="type"/>
      <tparam name="Q2" class="type"/>
      <function name="get_common_quantity_spec" id="E4A/sRA3w23oyXrH0IUwnURDaFw=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1260" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </return>
        <param>
          <type name="Q1"/>
        </param>
        <param>
          <type name="Q2"/>
        </param>
      </function>
    </template>
    <function name="get_common_quantity_spec" requires="requires { mp_units::get_common_quantity_spec(mp_units::get_common_quantity_spec(q1, q2), q3, rest...); }" id="ops9PuDbxFJbFulTeH561sL09TI=">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1267" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="QuantitySpec">
        </type>
      </return>
      <param name="q1">
        <type name="auto"/>
      </param>
      <param name="q2">
        <type name="auto"/>
      </param>
      <param name="q3">
        <type name="auto"/>
      </param>
      <param name="rest">
        <type is-pack="1" name="auto"/>
      </param>
    </function>
    <template>
      <tparam name="R1" class="type"/>
      <tparam name="R2" class="type"/>
      <tparam name="Rest" class="type"/>
      <function name="get_common_reference" requires="(!(MP_UNITS_ASSOCIATED_UNIT_T(R1) &amp;&amp; MP_UNITS_ASSOCIATED_UNIT_T(R2) &amp;&amp;
             (... &amp;&amp; MP_UNITS_ASSOCIATED_UNIT_T(Rest)))) &amp;&amp;
          requires {
            get_common_quantity_spec(get_quantity_spec(r1), get_quantity_spec(r2), get_quantity_spec(rest)...);
            get_common_unit(get_unit(r1), get_unit(r2), get_unit(rest)...);
          }" id="TueoiFRG63aF0xftRmAor4+YLe0=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="270" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Reference">
          </type>
        </return>
        <param name="u1">
          <type name="auto"/>
        </param>
        <param name="u2">
          <type name="auto"/>
        </param>
        <param name="rest">
          <type is-pack="1" name="auto"/>
        </param>
      </function>
    </template>
    <function name="get_common_unit" id="7Pm9n2GN9FsPia07u+tD+Gba/iY=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="665" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="Unit">
        </type>
      </return>
      <param name="u">
        <type name="auto"/>
      </param>
    </function>
    <template>
      <tparam name="Us" class="type"/>
      <tparam name="NewUnit" class="type"/>
      <function name="get_common_unit" id="jNLYsnSfKY1hnbOjTYpDUTFm2L0=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="737" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </return>
        <param name="nu">
          <type name="NewUnit"/>
        </param>
        <param name="cu">
          <type id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=" name="common_unit&lt;Us...&gt;"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U1" class="type"/>
      <tparam name="U2" class="type"/>
      <function name="get_common_unit" id="03ej/AVjfrDwpFNLIXMvyuRC8tk=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="667" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </return>
        <param name="u1">
          <type name="U1"/>
        </param>
        <param name="u2">
          <type name="U2"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="Us" class="type"/>
      <tparam name="NewUnit" class="type"/>
      <function name="get_common_unit" id="jb+bw+fpE8ZBXof98wDF77N7JUc=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="727" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </return>
        <param>
          <type id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=" name="common_unit&lt;Us...&gt;"/>
        </param>
        <param>
          <type name="NewUnit"/>
        </param>
      </function>
    </template>
    <template requires="(detail::UnitConvertibleTo&lt;common_unit&lt;Front, Rest...&gt;, common_unit&lt;Us...&gt;{}&gt;)">
      <tparam name="Front" class="type"/>
      <tparam name="Rest" class="type"/>
      <tparam name="Us" class="type"/>
      <function name="get_common_unit" id="1/kOwZMOfS1eGkLBTqUkuY313uw=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="743" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </return>
        <param>
          <type id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=" name="common_unit&lt;Front, Rest...&gt;"/>
        </param>
        <param>
          <type id="JSBnS8Z3ZPPOB+6GygioZoiUWJY=" name="common_unit&lt;Us...&gt;"/>
        </param>
      </function>
    </template>
    <function name="get_common_unit" requires="requires { get_common_unit(get_common_unit(u1, u2), u3, rest...); }" id="KMGur66uSjugX3Ao7gtDMAWMbPA=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="753" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="Unit">
        </type>
      </return>
      <param name="u1">
        <type name="auto"/>
      </param>
      <param name="u2">
        <type name="auto"/>
      </param>
      <param name="u3">
        <type name="auto"/>
      </param>
      <param name="rest">
        <type is-pack="1" name="auto"/>
      </param>
    </function>
    <template>
      <tparam name="Q" class="type"/>
      <function name="get_kind" id="sgXhsMFATbC1y7/kEMAvDdRqKKs=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1180" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityKindSpec">
          </type>
        </return>
        <param>
          <type name="Q"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U" class="type"/>
      <function name="get_quantity_spec" id="KY/H7pyMWLID46XIk5wz6FFLdSU=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="53" class="def"/>
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="38"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </return>
        <param>
          <type name="U"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <tparam name="U" class="type"/>
      <function name="get_quantity_spec" id="DOSEog7Sv7dBsCGXCoj8dxpDz+s=">
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="41" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </return>
        <param>
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;Q, U&gt;"/>
        </param>
      </function>
    </template>
    <function name="get_unit" id="Y2b9xu6nf4paI4zjLGWAgfhFdE4=">
      <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="47" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="Unit">
        </type>
      </return>
      <param name="u">
        <type name="auto"/>
      </param>
    </function>
    <template>
      <tparam name="Q" class="type"/>
      <tparam name="U" class="type"/>
      <function name="get_unit" id="mkrGCgulPgINfPpEHEewGlKf4rw=">
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="49" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Unit">
          </type>
        </return>
        <param>
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;Q, U&gt;"/>
        </param>
      </function>
    </template>
    <template requires="requires(Rep1 v1, Rep2 v2) {
    get_common_reference(R1, R2);
    requires requires { hypot(v1, v2); } || requires { std::hypot(v1, v2); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="hypot" exception-spec="noexcept" id="4opZ6/C6RYBQMJJxUkHL4Dranrs=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="430" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;get_quantity_spec(get_common_reference(R1, R2))&gt;">
          </type>
        </return>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R1, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="y">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the square root of the sum of the squares of x and y, without undue overflow or underflow at intermediate stages of the computation</text>
          </brief>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="y">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep1 v1, Rep2 v2, Rep3 v3) {
    get_common_reference(R1, R2, R3);
    requires requires { hypot(v1, v2, v3); } || requires { std::hypot(v1, v2, v3); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <tparam name="R3" class="constant" type="auto"/>
      <tparam name="Rep3" class="type"/>
      <function name="hypot" exception-spec="noexcept" id="jE42PEpZT2vwd+h+XvQhVCWqUcA=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="448" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;get_quantity_spec(get_common_reference(R1, R2, R3))&gt;">
          </type>
        </return>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R1, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="y">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="z">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R3, Rep3&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the square root of the sum of the squares of x, y, and z, without undue overflow or underflow at intermediate stages of the computation</text>
          </brief>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="y">
            <text>A quantity</text>
          </param>
          <param name="z">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="From" class="type"/>
      <tparam name="To" class="type"/>
      <function name="implicitly_convertible" id="MKxT45v81VHYBhiJUK5wu+Qy2PE=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1099" class="def"/>
        <file short-path="mp-units/framework/quantity_spec_concepts.h" source-path="src/core/include/mp-units/framework/quantity_spec_concepts.h" line="51"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="from">
          <type name="From"/>
        </param>
        <param name="to">
          <type name="To"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="QS1" class="type"/>
      <tparam name="QS2" class="type"/>
      <function name="interconvertible" id="HgvwgM2CIak6D5pnwqp0bkHLzBQ=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="1117" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="qs1">
          <type name="QS1"/>
        </param>
        <param name="qs2">
          <type name="QS2"/>
        </param>
      </function>
    </template>
    <function name="inverse" id="1VK8VfpETogEb9ZyGXYdatm6LwE=">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="182" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="QuantitySpec">
        </type>
      </return>
      <param name="d">
        <type name="auto"/>
      </param>
    </function>
    <function name="inverse" id="vUBXgnkTggAwveJqRmfDENVdPEc=">
      <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="139" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;inverse(Q{}), inverse(U{})&gt;"/>
      </return>
      <param>
        <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
      </param>
    </function>
    <template>
      <tparam name="To" class="constant" type="Unit auto"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="inverse" requires="(!detail::scaling_overflows_non_zero_values&lt;Rep&gt;(one / get_unit(R), To)) &amp;&amp; requires {
    representation_values&lt;Rep&gt;::one();
    value_cast&lt;To&gt;(representation_values&lt;Rep&gt;::one() / q);
  }" id="li0JxIOUTeIEd+KL7umEXQCcPiI=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="408" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the inverse of a quantity in a provided unit</text>
          </brief>
          <param name="q">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::equality_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_eq_zero" id="R/EEb1KC4kw3xXkCI/X8/5TNaIw=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="39" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::three_way_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_gt_zero" id="X8KpdmmUKyEjj138T1EOzGOGdUk=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="66" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::three_way_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_gteq_zero" id="6drRuJynB0qCQeQ7FMWVGZ3syhs=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="84" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::three_way_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_lt_zero" id="JRA6NgZxHJHP0GSI2hcHvYGmYOo=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="57" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::three_way_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_lteq_zero" id="Vm1yW2Cmeqev94Wzq4KuEI9F6kk=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="75" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires {
    { T::zero() } -&gt; std::equality_comparable_with&lt;T&gt;;
  }">
      <tparam name="T" class="type"/>
      <function name="is_neq_zero" id="3BAmiTIl/Tt1aXz+/akbmTAByHY=">
        <file short-path="mp-units/framework/compare.h" source-path="src/core/include/mp-units/framework/compare.h" line="48" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="v">
          <type name="T"/>
        </param>
      </function>
    </template>
    <template requires="requires(Rep v) { isfinite(v); } || requires(Rep v) { std::isfinite(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isfinite" exception-spec="noexcept" id="0+3iE4ITRw98N9KT2WSXuE/TD2s=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="154" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity is finite.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity is finite or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(quantity&lt;R, Rep&gt; q) { isfinite(q); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="PO" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isfinite" exception-spec="noexcept" id="uIj3HjNrMhCnSmQadL6t5nrGltU=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="168" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R, PO, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity point is finite.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity point is finite or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity point to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep v) { isinf(v); } || requires(Rep v) { std::isinf(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isinf" exception-spec="noexcept" id="+hj7pK3yXm3AzTDZteY08JkXK3A=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="181" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity is infinite.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity is infinite or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(quantity&lt;R, Rep&gt; q) { isinf(q); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="PO" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isinf" exception-spec="noexcept" id="TUhWb1+EKY5azBAKDApgofuyMwE=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="195" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R, PO, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity point is infinite.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity point is infinite or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity point to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep v) { isnan(v); } || requires(Rep v) { std::isnan(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isnan" exception-spec="noexcept" id="CR4R8pRs9CWjNN8EcKGZnB0FWCA=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="209" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity is a nan.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity is a NaN or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(quantity&lt;R, Rep&gt; q) { isnan(q); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="PO" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="isnan" exception-spec="noexcept" id="gjCTnHolRlZqgnTL+YR46gOz3N0=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="224" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R, PO, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Determines if a quantity point is a nan.</text>
          </brief>
          <returns>
            <text>bool: Whether the quantity point is a NaN or not.</text>
          </returns>
          <param name="a:">
            <text>Quantity point to analyze.</text>
          </param>
          <param name="a">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep1 a, Rep2 b, Factor t) {
    get_common_reference(R1, R2);
    requires requires { lerp(a, b, t); } || requires { std::lerp(a, b, t); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Origin" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <tparam name="Factor" class="type"/>
      <function name="lerp" exception-spec="noexcept" id="mRn/EiKLcRS/E05wduoOfc/E/UY=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="469" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;get_quantity_spec(get_common_reference(R1, R2))&gt;">
          </type>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R1, Origin, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R2, Origin, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="t">
          <type class="lvalue-reference">
            <pointee-type name="Factor" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Linear interpolation or extrapolation</text>
          </brief>
          <para>
            <text>Computes the linear interpolation between </text>
            <mono>a</mono>
            <text> and </text>
            <mono>b</mono>
            <text>, if the parameter </text>
            <mono>t</mono>
            <text> is inside </text>
            <mono>[​0​, 1)</mono>
            <text> (the linear extrapolation otherwise), i.e. the result of </text>
            <mono>a + t(b − a)</mono>
            <text> with accounting for floating-point calculation imprecision.</text>
          </para>
          <param name="a">
            <text>A quantity point</text>
          </param>
          <param name="b">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <function name="magnitude" requires="treat_as_floating_point&lt;T&gt;" id="wSUyRRjmNBcGJm9H8eC6YvOqis0=">
      <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="257" class="def"/>
      <attr id="constexpr-kind" name="constexpr" value="1"/>
      <attr id="nodiscard"/>
      <return>
        <type name="T"/>
      </return>
      <param name="vec">
        <type class="lvalue-reference">
          <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector" cv-qualifiers="const"/>
        </type>
      </param>
    </function>
    <template requires="requires(Rep1 a, Rep2 b) {
    get_common_reference(R1, R2);
    requires requires { midpoint(a, b); } || requires { std::midpoint(a, b); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Origin" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="midpoint" exception-spec="noexcept" id="ZEaJM6t9pw94zlf6TPfoNclXdQI=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="488" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPointOf&lt;get_quantity_spec(get_common_reference(R1, R2))&gt;">
          </type>
        </return>
        <param name="a">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R1, Origin, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="b">
          <type class="lvalue-reference">
            <pointee-type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;R2, Origin, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the midpoint of two points</text>
          </brief>
          <param name="a">
            <text>A quantity point</text>
          </param>
          <param name="b">
            <text>A quantity point</text>
          </param>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::modulus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator%" id="nhS5TbSx0fEFQWiFwPyw0c4Tz6U=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="552" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="mod" value="9"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::modulus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator%" id="3h7PF/pVQnwOKfamgKqUyn1u4Ek=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="560" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="mod" value="9"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="(!treat_as_floating_point&lt;Rep&gt;) &amp;&amp; (!treat_as_floating_point&lt;Rep2&gt;) &amp;&amp;
            detail::CommonlyInvocableQuantities&lt;std::modulus&lt;&gt;, quantity, quantity&lt;R2, Rep2&gt;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator%" id="VVgw+MhKYyxijYBa3Y7mgOcQxZw=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="539" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="mod" value="9"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U1" class="type"/>
      <function name="operator*" id="K+KIPCFagL6AIy1ABvCZwzKxDbM=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="107" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;get_quantity_spec(U1{}) * Q{}, U1{} * U{}&gt;"/>
        </return>
        <param name="lhs">
          <type name="U1"/>
        </param>
        <param name="rhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U2" class="type"/>
      <function name="operator*" id="9wRihde669gaZo7FFsSmYNpbPgY=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="99" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;(Q{} * get_quantity_spec(U2{})), U{} * U2{}&gt;"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="rhs">
          <type name="U2"/>
        </param>
      </function>
    </template>
    <template requires="Quantity&lt;std::remove_cvref_t&lt;Q&gt;&gt;">
      <tparam name="R" class="type"/>
      <tparam name="Q" class="type"/>
      <function name="operator*" id="CY8uINx+hnInIqalVjbB+zIZUAE=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="260" class="def"/>
        <attr id="is-deleted"/>
        <attr id="is-deleted-as-written"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type name="R"/>
        </param>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="Q"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="RepresentationOf&lt;std::remove_cvref_t&lt;Rep&gt;, get_quantity_spec(R{})&gt;">
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type"/>
      <function name="operator*" id="jbQLmh6xDtnK7qyAlkVtAoGzksQ=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="228" class="def"/>
        <attr id="is-deleted"/>
        <attr id="is-deleted-as-written"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type name="R"/>
        </param>
        <param name="rhs">
          <type class="rvalue-reference">
            <pointee-type name="Rep"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="Q2" class="type"/>
      <tparam name="U2" class="type"/>
      <function name="operator*" id="Udh7//0qOGn5zOAZrooDLlEUhs0=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="91" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;Q{} * Q2{}, U{} * U2{}&gt;"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="rhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;Q2, U2&gt;"/>
        </param>
      </function>
    </template>
    <template requires="(!Quantity&lt;Value&gt;) &amp;&amp;
            (!Reference&lt;Value&gt;) &amp;&amp; detail::InvokeResultOf&lt;quantity_spec, std::multiplies&lt;&gt;, rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator*" id="AhhviGbEjtw+2aRh4dfYbP/WjV0=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="575" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
          </type>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="val">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="(!Quantity&lt;Value&gt;) &amp;&amp;
            (!Reference&lt;Value&gt;) &amp;&amp; detail::InvokeResultOf&lt;quantity_spec, std::multiplies&lt;&gt;, const Value&amp;, rep&gt;">
      <tparam name="Value" class="type"/>
      <tparam name="Q" class="type"/>
      <function name="operator*" id="PHtu6W7WnA0lznOUk7zADXmAGB8=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="583" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
          </type>
        </return>
        <param name="val">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::InvocableQuantities&lt;std::multiplies&lt;&gt;, quantity, quantity&lt;R2, Rep2&gt;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator*" id="jcmSF/IUaExGJR0Mu0QvKL+22ls=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="568" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="FwdQ" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="operator*" id="Isq1XqGJjChk3xArUE/jARYylS4=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="248" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <param name="rhs">
          <type name="R"/>
        </param>
      </function>
    </template>
    <template requires="(!detail::OffsetUnit&lt;decltype(get_unit(R{}))&gt;)">
      <tparam name="FwdRep" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
      <function name="operator*" id="euLmIn2b2Qg0VDAZvCUL5OXRz4Q=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="194" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R{}, Rep&gt;"/>
        </return>
        <param name="lhs">
          <type class="rvalue-reference">
            <pointee-type name="FwdRep"/>
          </type>
        </param>
        <param name="r">
          <type name="R"/>
        </param>
        <doc>
          <brief>
            <text>Multiplication operator</text>
          </brief>
          <returns>
            <text>A quantity</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="r">
            <text>The right operand</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="detail::OffsetUnit&lt;decltype(get_unit(R{}))&gt;">
      <tparam name="FwdRep" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
      <function name="operator*" id="Gqnjg4hBPrwCOH9NkKFA+9R46MA=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="208" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="star" value="7"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="rvalue-reference">
            <pointee-type name="FwdRep"/>
          </type>
        </param>
        <param name="r">
          <type name="R"/>
        </param>
      </function>
    </template>
    <function name="operator+" exception-spec="noexcept" id="eltf+3ZQ2nwdLUMS5CJH0mE7Mck=">
      <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="191" class="def"/>
      <attr id="constexpr-kind" name="constexpr" value="1"/>
      <attr id="operator" name="plus" value="5"/>
      <attr id="nodiscard"/>
      <return>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, 1 + N&gt;"/>
      </return>
      <param name="lhs">
        <type name="CharT" cv-qualifiers="const"/>
      </param>
      <param name="rhs">
        <type class="lvalue-reference">
          <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
        </type>
      </param>
      <doc>
        <brief>
          <text>Addition operator</text>
        </brief>
        <returns>
          <text>A compile-time fixed string</text>
        </returns>
        <param name="lhs">
          <text>The left operand</text>
        </param>
        <param name="rhs">
          <text>The right operand</text>
        </param>
      </doc>
    </function>
    <function name="operator+" exception-spec="noexcept" id="41lN7xWQTgIlEGeDmeocuk3sScI=">
      <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="181" class="def"/>
      <attr id="constexpr-kind" name="constexpr" value="1"/>
      <attr id="operator" name="plus" value="5"/>
      <attr id="nodiscard"/>
      <return>
        <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N + 1&gt;"/>
      </return>
      <param name="lhs">
        <type class="lvalue-reference">
          <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
        </type>
      </param>
      <param name="rhs">
        <type name="CharT"/>
      </param>
      <doc>
        <brief>
          <text>Addition operator</text>
        </brief>
        <returns>
          <text>A compile-time fixed string</text>
        </returns>
        <param name="lhs">
          <text>The left operand</text>
        </param>
        <param name="rhs">
          <text>The right operand</text>
        </param>
      </doc>
    </function>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator+" exception-spec="noexcept" id="5gsE52VI7hwCqKsLOd6s0weoOus=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="170" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N + N2&gt;"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Addition operator</text>
          </brief>
          <returns>
            <text>A compile-time fixed string</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator+" exception-spec="noexcept" id="7F/eVBVnneFgJR1HgS9rQi6It44=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="201" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N + N2 - 1&gt;"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N2">
              <element-type name="CharT" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
        <doc>
          <brief>
            <text>Addition operator</text>
          </brief>
          <returns>
            <text>A compile-time fixed string</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N1" class="constant" type="std::size_t"/>
      <function name="operator+" exception-spec="noexcept" id="ZzcrGHWQLcZpFDHyTCqdM1qSu/Y=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="213" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N1 + N - 1&gt;"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N1">
              <element-type name="CharT" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Addition operator</text>
          </brief>
          <returns>
            <text>A compile-time fixed string</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::plus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator+" id="8RXMKeBw2OR2I0rYgz9XD/ibxOA=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="496" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::plus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator+" id="taIoGz7+lUVFt47Owox+gnT+gYg=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="504" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <tparam name="M2" class="constant" type="std::size_t"/>
      <function name="operator+" id="4ey+ag1urbLGWAr13dca66uWzIw=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="149" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N + N2, M + M2&gt;"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N2, M2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Addition operator</text>
          </brief>
          <returns>
            <text>A symbol text representation</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="detail::CommonlyInvocableQuantities&lt;std::plus&lt;&gt;, quantity, quantity&lt;R2, Rep2&gt;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator+" id="bQbE5LsmXttrcxovW8h1nA+3r7I=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="485" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="QP" class="type"/>
      <tparam name="R2" class="constant" type="ReferenceOf&lt;PO._quantity_spec_&gt; auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator+" requires="requires { qp.quantity_ref_from(PO) + q; }" id="pdxlVdbp2S6ikam02OovQMvXQZ8=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="465" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="R1" class="constant" type="ReferenceOf&lt;PO._quantity_spec_&gt; auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="QP" class="type"/>
      <function name="operator+" requires="requires { q + qp.quantity_ref_from(PO); }" id="CR2fWF4x43WEcLoo+KnoW0ZSIOw=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="477" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="plus" value="5"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R1, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="QuantityPointOf&lt;quantity_point, PO1{}&gt; &amp;&amp;
             ReferenceOf&lt;MP_UNITS_NONCONST_TYPE(reference), PO1::_quantity_spec_&gt;">
      <tparam name="PO1" class="type"/>
      <tparam name="QP" class="type"/>
      <function name="operator-" id="dWwWspeQfBitnhot+dZiO0jrY7Y=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="532" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="po">
          <type name="PO1"/>
        </param>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::minus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator-" id="pyEh8yQndCkDKp4iWRWGCJx1470=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="523" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="QP" class="type"/>
      <tparam name="QP2" class="type"/>
      <function name="operator-" requires="requires { lhs.quantity_ref_from(point_origin) - rhs.quantity_ref_from(QP2::point_origin); }" id="ZfbayLOCRW1iA907HRKgj0vogWI=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="497" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="QP2" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="QuantityPointOf&lt;quantity_point, PO2{}&gt; &amp;&amp;
             ReferenceOf&lt;MP_UNITS_NONCONST_TYPE(reference), PO2::_quantity_spec_&gt;">
      <tparam name="QP" class="type"/>
      <tparam name="PO2" class="type"/>
      <function name="operator-" id="Ce+LE0q3lSHCfq1dGE9n9Fd9VEk=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="509" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="po">
          <type name="PO2"/>
        </param>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp;
             detail::InvokeResultOf&lt;quantity_spec, std::minus&lt;&gt;, Rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator-" id="eaZZli2brMatdJPbWu8u1i+dbWQ=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="531" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::CommonlyInvocableQuantities&lt;std::minus&lt;&gt;, quantity, quantity&lt;R2, Rep2&gt;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator-" id="NeQOivjLxwBZbBbXG5t4urlHZKA=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="512" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="QP" class="type"/>
      <tparam name="R2" class="constant" type="ReferenceOf&lt;PO._quantity_spec_&gt; auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator-" requires="requires { qp.quantity_ref_from(PO) - q; }" id="WZ3d+GsTBh+7qyvqcDSA4+b4iNw=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="489" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="minus" value="6"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U1" class="type"/>
      <function name="operator/" id="1o0nLTQ7vNR3GD8vZBBkbrdg1sE=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="131" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;get_quantity_spec(U1{}) / Q{}, U1{} / U{}&gt;"/>
        </return>
        <param name="lhs">
          <type name="U1"/>
        </param>
        <param name="rhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="U2" class="type"/>
      <function name="operator/" id="5zZLkmL9Ot/1LyQPXe/lz6473Uk=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="123" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;Q{} / get_quantity_spec(U2{}), U{} / U2{}&gt;"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="rhs">
          <type name="U2"/>
        </param>
      </function>
    </template>
    <template requires="Quantity&lt;std::remove_cvref_t&lt;Q&gt;&gt;">
      <tparam name="R" class="type"/>
      <tparam name="Q" class="type"/>
      <function name="operator/" id="xQSCNhlNzI64YX+zsU+zwTiZnSM=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="265" class="def"/>
        <attr id="is-deleted"/>
        <attr id="is-deleted-as-written"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type name="R"/>
        </param>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="Q"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="RepresentationOf&lt;std::remove_cvref_t&lt;Rep&gt;, get_quantity_spec(R{})&gt;">
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type"/>
      <function name="operator/" id="v/DCjWrjwolYwwNC+FQjWD70GeY=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="238" class="def"/>
        <attr id="is-deleted"/>
        <attr id="is-deleted-as-written"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type name="R"/>
        </param>
        <param name="rhs">
          <type class="rvalue-reference">
            <pointee-type name="Rep"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="Q2" class="type"/>
      <tparam name="U2" class="type"/>
      <function name="operator/" id="0wCzHv6Rkaoc2pHySXHFl7ommb8=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="115" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;Q{} / Q2{}, U{} / U2{}&gt;"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="rhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;Q2, U2&gt;"/>
        </param>
      </function>
    </template>
    <template requires="(!Quantity&lt;Value&gt;) &amp;&amp;
            (!Reference&lt;Value&gt;) &amp;&amp; detail::InvokeResultOf&lt;quantity_spec, std::divides&lt;&gt;, rep, const Value&amp;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator/" id="mO8U2oL6JJ7Zlzga/ByetjIzGWQ=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="599" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;quantity_spec&gt;">
          </type>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="val">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="(!Quantity&lt;Value&gt;) &amp;&amp;
            (!Reference&lt;Value&gt;) &amp;&amp; detail::InvokeResultOf&lt;quantity_spec, std::divides&lt;&gt;, const Value&amp;, rep&gt;">
      <tparam name="Value" class="type"/>
      <tparam name="Q" class="type"/>
      <function name="operator/" id="rZIBRMi6irre9gEFxn2/c7RkRbo=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="608" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="val">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="detail::InvocableQuantities&lt;std::divides&lt;&gt;, quantity, quantity&lt;R2, Rep2&gt;&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator/" id="W5h6VF9CyeH6DWVvWd5id+Nuq5I=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="591" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="FwdQ" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="operator/" id="gNboLUT3sh5XXt6f+7llB6x8SsE=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="254" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <param name="rhs">
          <type name="R"/>
        </param>
      </function>
    </template>
    <template requires="(!detail::OffsetUnit&lt;decltype(get_unit(R{}))&gt;)">
      <tparam name="FwdRep" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
      <function name="operator/" id="PpGA2VW13ottgyRP6hVboXrEKVg=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="201" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="lhs">
          <type class="rvalue-reference">
            <pointee-type name="FwdRep"/>
          </type>
        </param>
        <param name="rhs">
          <type name="R"/>
        </param>
      </function>
    </template>
    <template requires="detail::OffsetUnit&lt;decltype(get_unit(R{}))&gt;">
      <tparam name="FwdRep" class="type"/>
      <tparam name="R" class="type"/>
      <tparam name="Rep" class="type" default="std::remove_cvref_t&lt;FwdRep&gt;"/>
      <function name="operator/" id="ZhkQjLqCDg63ldvHNllQoCULxD8=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="218" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="slash" value="8"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="rvalue-reference">
            <pointee-type name="FwdRep"/>
          </type>
        </param>
        <param name="rhs">
          <type name="R"/>
        </param>
      </function>
    </template>
    <template requires="(Den != 0)">
      <tparam name="Num" class="constant" type="intmax_t"/>
      <tparam name="Den" class="constant" type="intmax_t" default="1"/>
      <function name="pow" id="ts9f84z8LQSNEtTXSpMBKrhX0Dc=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="155" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;(pow&lt;Num, Den&gt;(Q{})), (pow&lt;Num, Den&gt;(U{}))&gt;"/>
        </return>
        <param>
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <doc>
          <brief>
            <text>Computes the value of a reference raised to the </text>
            <mono>Num/Den</mono>
            <text> power</text>
          </brief>
          <returns>
            <text>The result of computation</text>
          </returns>
          <param name="r">
            <text>Reference being the base of the operation</text>
          </param>
          <tparam name="Num">
            <text>Exponent numerator</text>
          </tparam>
          <tparam name="Den">
            <text>Exponent denominator</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(Den != 0)">
      <tparam name="Num" class="constant" type="intmax_t"/>
      <tparam name="Den" class="constant" type="intmax_t" default="1"/>
      <tparam name="D" class="type"/>
      <function name="pow" id="eTaoyxTjqKyto9WFmSDfMkcqSO8=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="193" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantitySpec">
          </type>
        </return>
        <param name="d">
          <type name="D"/>
        </param>
        <doc>
          <brief>
            <text>Computes the value of a dimension raised to the </text>
            <mono>Num/Den</mono>
            <text> power</text>
          </brief>
          <returns>
            <text>Dimension The result of computation</text>
          </returns>
          <returns>
            <text>QuantitySpec The result of computation</text>
          </returns>
          <returns>
            <text>Unit The result of computation</text>
          </returns>
          <param name="d">
            <text>Dimension being the base of the operation</text>
          </param>
          <param name="q">
            <text>Quantity specification being the base of the operation</text>
          </param>
          <param name="u">
            <text>Unit being the base of the operation</text>
          </param>
          <tparam name="Num">
            <text>Exponent numerator</text>
          </tparam>
          <tparam name="Den">
            <text>Exponent denominator</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(Den != 0) &amp;&amp; requires(Rep v) {
    representation_values&lt;Rep&gt;::one();
    requires requires { pow(v, 1.0); } || requires { std::pow(v, 1.0); };
  }">
      <tparam name="Num" class="constant" type="intmax_t"/>
      <tparam name="Den" class="constant" type="intmax_t" default="1"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="pow" exception-spec="noexcept" id="V8OBX/tFtorVPNO6NSEK8jn0bag=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="79" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;pow&lt;Num, Den&gt;(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the value of a quantity raised to the </text>
            <mono>Num/Den</mono>
            <text> power</text>
          </brief>
          <para>
            <text>Both the quantity value and its quantity specification are the base of the operation.</text>
          </para>
          <returns>
            <text>Quantity The result of computation</text>
          </returns>
          <param name="q">
            <text>Quantity being the base of the operation</text>
          </param>
          <tparam name="Num">
            <text>Exponent numerator</text>
          </tparam>
          <tparam name="Den">
            <text>Exponent denominator</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="(castable(Q::quantity_spec, ToQS)) &amp;&amp; (MP_UNITS_WEAK_UNIT_OF(MP_UNITS_NONCONST_TYPE(Q::unit), ToQS))">
      <tparam name="ToQS" class="constant" type="QuantitySpec auto"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="quantity_cast" id="s7ru/Ks+OFqIovTUInT4qdvH8uI=">
        <file short-path="mp-units/framework/quantity_cast.h" source-path="src/core/include/mp-units/framework/quantity_cast.h" line="60" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity type</text>
          </brief>
          <para>
            <text>This cast converts only a quantity type. It might be used to force some quantity type conversions that are not implicitly allowed but are allowed explicitly.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 auto length = isq::length(42 * m);
 auto distance = quantity_cast&lt;isq::distance&gt;(length);</text>
          </code>
          <para class="note">
            <text>This cast does not affect the underlying value of a number stored in a quantity.</text>
          </para>
          <tparam name="ToQS">
            <text>a quantity specification to use for a target quantity</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(castable(QP::quantity_spec, ToQS)) &amp;&amp; (MP_UNITS_WEAK_UNIT_OF(MP_UNITS_NONCONST_TYPE(QP::unit), ToQS))">
      <tparam name="ToQS" class="constant" type="QuantitySpec auto"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="quantity_cast" id="gYzTYJ11EJTldg8s8KVBX/a3oVQ=">
        <file short-path="mp-units/framework/quantity_cast.h" source-path="src/core/include/mp-units/framework/quantity_cast.h" line="84" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point type</text>
          </brief>
          <para>
            <text>This cast converts only a quantity point type. It might be used to force some quantity point type conversions that are not implicitly allowed but are allowed explicitly.</text>
          </para>
          <para>
            <text>For example:</text>
          </para>
          <code>
            <text>{.cpp}
 auto length = isq::length(quantity_point{42 * m});
 auto altitude = quantity_cast&lt;isq::altitude&gt;(length);</text>
          </code>
          <para class="note">
            <text>This cast does not affect the underlying value of a number stored in a quantity point.</text>
          </para>
          <tparam name="ToQS">
            <text>a quantity specification to use for a target quantity point</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="requires(Rep1 v1, Rep2 v2) {
    get_common_reference(R1, R2);
    requires requires { remainder(v1, v2); } || requires { std::remainder(v1, v2); };
  }">
      <tparam name="R1" class="constant" type="auto"/>
      <tparam name="Rep1" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="remainder" exception-spec="noexcept" id="6/UA00K5t5mVJpy2tqbV+/fqEGU=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="299" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityOf&lt;get_quantity_spec(R1)&gt;">
          </type>
        </return>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R1, Rep1&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="y">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the IEEE remainder of the floating point division operation x / y.</text>
          </brief>
          <param name="x">
            <text>A quantity</text>
          </param>
          <param name="y">
            <text>A quantity</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="To" class="constant" type="Unit auto"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="round" exception-spec="noexcept" requires="requires {
    mp_units::floor&lt;To&gt;(q);
    representation_values&lt;Rep&gt;::one();
  } &amp;&amp; std::constructible_from&lt;std::int64_t, Rep&gt;" id="5JtzptTRryPZerq8nakI4TrDIX0=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="385" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;detail::clone_reference_with&lt;To&gt;(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the nearest quantity with integer representation and unit type </text>
            <mono>To</mono>
            <text> to </text>
            <mono>q</mono>
          </brief>
          <para>
            <text>Returns the value </text>
            <mono>res</mono>
            <text> representable in </text>
            <mono>To</mono>
            <text> unit that is the closest to </text>
            <mono>q</mono>
            <text>. If there are two such values, returns the even value (that is, the value </text>
            <mono>res</mono>
            <text> such that </text>
            <mono>res % 2 == 0</mono>
            <text>).</text>
          </para>
          <returns>
            <text>Quantity The quantity rounded to the nearest unit </text>
            <mono>To</mono>
            <text>, rounding to even in halfway cases.</text>
          </returns>
          <param name="q">
            <text>A quantity</text>
          </param>
          <tparam name="q">
            <text>Quantity being the base of the operation</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <function name="sqrt" id="n48/kyULsXkC1jxCz3lz6Zg7ilg=">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="207" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="QuantitySpec">
        </type>
      </return>
      <param name="d">
        <type name="auto"/>
      </param>
      <doc>
        <brief>
          <text>Computes the square root of a dimension</text>
        </brief>
        <returns>
          <text>Dimension The result of computation</text>
        </returns>
        <returns>
          <text>QuantitySpec The result of computation</text>
        </returns>
        <returns>
          <text>Unit The result of computation</text>
        </returns>
        <param name="d">
          <text>Dimension being the base of the operation</text>
        </param>
        <param name="q">
          <text>Quantity specification being the base of the operation</text>
        </param>
        <param name="u">
          <text>Unit being the base of the operation</text>
        </param>
      </doc>
    </function>
    <function name="sqrt" id="/JNzIzM/ujp5allMBSlMLF8z1AA=">
      <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="171" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type id="2GsiK1S0WiAEDsUNueCpaCNhP9g=" name="detail::reference_t&lt;sqrt(Q{}), sqrt(U{})&gt;"/>
      </return>
      <param>
        <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
      </param>
    </function>
    <template requires="requires(Rep v) { sqrt(v); } || requires(Rep v) { std::sqrt(v); }">
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="sqrt" exception-spec="noexcept" id="u3CbpPerqQ2pFgzr1ht8nrAuFqQ=">
        <file short-path="mp-units/math.h" source-path="src/core/include/mp-units/math.h" line="107" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;sqrt(R), Rep&gt;"/>
        </return>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Computes the square root of a quantity</text>
          </brief>
          <para>
            <text>Both the quantity value and its quantity specification are the base of the operation.</text>
          </para>
          <returns>
            <text>Quantity The result of computation</text>
          </returns>
          <param name="q">
            <text>Quantity being the base of the operation</text>
          </param>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <function name="square" id="HCFkPDyuV2aMy0cNKIQlyhRnUGI=">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="643" class="def"/>
      <attr id="constexpr-kind" name="consteval" value="2"/>
      <attr id="nodiscard"/>
      <return>
        <type class="auto" keyword="auto" constraint="Unit">
        </type>
      </return>
      <param name="u">
        <type name="auto"/>
      </param>
      <doc>
        <brief>
          <text>Computes the square power of a unit</text>
        </brief>
        <returns>
          <text>Unit The result of computation</text>
        </returns>
        <param name="u">
          <text>Unit being the base of the operation</text>
        </param>
      </doc>
    </function>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="N" class="constant" type="std::size_t"/>
      <function name="swap" exception-spec="noexcept" id="ZTXYqzZje2ibV0XVQmCa1JG4usM=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="273" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <param name="x">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N&gt;"/>
          </type>
        </param>
        <param name="y">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N&gt;"/>
          </type>
        </param>
      </function>
    </template>
    <template>
      <tparam name="fmt" class="constant" type="unit_symbol_formatting" default="unit_symbol_formatting{}"/>
      <tparam name="CharT" class="type" default="char"/>
      <tparam name="U" class="type"/>
      <function name="unit_symbol" id="oV5BV40ZWO4sQG147f2PlsH/q3s=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="922" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="nodiscard"/>
        <return>
          <type id="oSFJcVc2/y4UVv2i2KJmYkq0irI=" name="std::basic_string_view&lt;CharT&gt;"/>
        </return>
        <param>
          <type name="U"/>
        </param>
      </function>
    </template>
    <template>
      <tparam name="CharT" class="type" default="char"/>
      <tparam name="Out" class="type"/>
      <tparam name="U" class="type"/>
      <function name="unit_symbol_to" id="7V54qsHrUmVyzNaznlB2ROlvRhU=">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="896" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <return>
          <type name="Out"/>
        </return>
        <param name="out">
          <type name="Out"/>
        </param>
        <param name="u">
          <type name="U"/>
        </param>
        <param name="fmt" default="unit_symbol_formatting{}">
          <type class="lvalue-reference">
            <pointee-type id="Xedc3mCrgSIyRddyxx/ZxYtyaGg=" name="unit_symbol_formatting" cv-qualifiers="const"/>
          </type>
        </param>
      </function>
    </template>
    <function name="unit_vector" requires="treat_as_floating_point&lt;T&gt;" id="w0qNz4Px4Q/GcaO4KDMK6Yul8Aw=">
      <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="263" class="def"/>
      <attr id="constexpr-kind" name="constexpr" value="1"/>
      <attr id="nodiscard"/>
      <return>
        <type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector"/>
      </return>
      <param name="vec">
        <type class="lvalue-reference">
          <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector" cv-qualifiers="const"/>
        </type>
      </param>
    </function>
    <template requires="(ToQ::quantity_spec == Q::quantity_spec) &amp;&amp;
          (MP_UNITS_WEAK_UNIT_OF(MP_UNITS_NONCONST_TYPE(ToQ::unit), Q::quantity_spec)) &amp;&amp;
          std::constructible_from&lt;typename ToQ::rep, typename Q::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;Q::unit, ToQ::unit, typename ToQ::rep&gt;">
      <tparam name="ToQ" class="type"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="value_cast" id="KRbAdtRaKWN2+L8AUAzT16D50aU=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="148" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity&apos;s representation</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>using ToQ = quantity&lt;us, int&gt;; auto q = value_cast&lt;ToQ&gt;(1.23 * ms);</text>
          </para>
          <para>
            <text>Note that value_cast only changes the &quot;representation aspects&quot; (unit and representation type), but not the &quot;meaning&quot; (quantity type).</text>
          </para>
          <tparam name="ToQ">
            <text>a target quantity type to which to cast the representation</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="RepresentationOf&lt;ToRep, Q::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename Q::rep&gt;">
      <tparam name="ToRep" class="type"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="value_cast" id="5AmuIA/qrJM251ySwdpPFoX7rY8=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="97" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;Q::reference, ToRep&gt;"/>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity&apos;s representation type</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto q = value_cast&lt;int&gt;(1.23 * ms);</text>
          </para>
          <returns>
            <text>A quantity</text>
          </returns>
          <tparam name="ToRep">
            <text>a representation type to use for a target quantity</text>
          </tparam>
          <relates>
            <reference id="F8330nXRcbWoqjgcYQ6nTJawdnY=">quantity</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), Q::quantity_spec)) &amp;&amp;
          detail::SaneScaling&lt;Q::unit, ToU, typename Q::rep&gt;">
      <tparam name="ToU" class="constant" type="auto"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="value_cast" id="2d4sRq0rBsqkv3ACd3EXL/gJ/r8=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="78" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity&apos;s unit</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto d = value_cast&lt;si::second&gt;(1234 * ms);</text>
          </para>
          <tparam name="ToU">
            <text>a unit to use for a target quantity</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(ToQ::quantity_spec == QP::quantity_spec) &amp;&amp;
          (MP_UNITS_WEAK_UNIT_OF(MP_UNITS_NONCONST_TYPE(ToQ::unit), QP::quantity_spec)) &amp;&amp;
          std::constructible_from&lt;typename ToQ::rep, typename QP::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;QP::unit, ToQ::unit, typename ToQ::rep&gt;">
      <tparam name="ToQ" class="type"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="p9z0O6ka01VADl7Gx0b+Cw4d8Q4=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="242" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point&apos;s representation</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>inline constexpr struct A : absolute_point_origin</text>
            <link href=""> A;</link>
          </para>
          <para>
            <text>using ToQ = quantity&lt;mm, int&gt;; auto qp = value_cast&lt;ToQ&gt;(quantity_point{1.23 * m});</text>
          </para>
          <para>
            <text>Note that value_cast only changes the &quot;representation aspects&quot; (unit and representation type), but not the &quot;meaning&quot; (quantity type or the actual point that is being described).</text>
          </para>
          <tparam name="ToQ">
            <text>a target quantity type to which to cast the representation of the point</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(ToQP::quantity_spec == QP::quantity_spec) &amp;&amp;
          (MP_UNITS_WEAK_UNIT_OF(MP_UNITS_NONCONST_TYPE(ToQP::unit), QP::quantity_spec)) &amp;&amp;
          (detail::same_absolute_point_origins(ToQP::point_origin, QP::point_origin)) &amp;&amp;
          std::constructible_from&lt;typename ToQP::rep, typename QP::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;QP::unit, ToQP::unit, typename ToQP::rep&gt;">
      <tparam name="ToQP" class="type"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="bWudbdWx9Jr6/k8+pKhfcAJT/ak=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="281" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point&apos;s representation, including potentially the point origin</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>inline constexpr struct A : absolute_point_origin</text>
            <link href=""> A; inline constexpr struct B : relative_point_origin B;</link>
          </para>
          <para>
            <text>using ToQP = quantity_point&lt;mm, B, int&gt;; auto qp = value_cast&lt;ToQP&gt;(quantity_point{1.23 * m});</text>
          </para>
          <para>
            <text>Note that value_cast only changes the &quot;representation aspects&quot; (unit, representation type and point origin), but not the &quot;meaning&quot; (quantity type or the actual point that is being described).</text>
          </para>
          <para>
            <text>Note also that changing the point origin bears risks regarding truncation and overflow similar to other casts that change representation (which is why we require a </text>
            <mono>value_cast</mono>
            <text> and disallow implicit conversions). This cast is guaranteed not to cause overflow of any intermediate representation type provided that the input quantity point is within the range of </text>
            <mono>ToQP</mono>
            <text>. Calling </text>
            <mono>value_cast&lt;ToQP&gt;(qp)</mono>
            <text> on a </text>
            <mono>qp</mono>
            <text> outside of the range of </text>
            <mono>ToQP</mono>
            <text> is potentially undefined behaviour. The implementation further attempts not to cause more than rounding error than approximately the sum of the resolution of </text>
            <mono>qp</mono>
            <text> as represented in </text>
            <mono>FromQP</mono>
            <text>, plust the resolution of </text>
            <mono>qp</mono>
            <text> as represented in </text>
            <mono>ToQP</mono>
            <text>.</text>
          </para>
          <tparam name="ToQP">
            <text>a target quantity point type to which to cast the representation of the point</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="RepresentationOf&lt;ToRep, QP::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename QP::rep&gt;">
      <tparam name="ToRep" class="type"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="IVRUjAd2Ki/jmzIm2tmudWEQJ+M=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="187" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;QP::reference, QP::point_origin, ToRep&gt;"/>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point&apos;s representation type</text>
          </brief>
          <para>
            <text>Implicit conversions between quantity points of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto qp = value_cast&lt;int&gt;(quantity_point{1.23 * ms});</text>
          </para>
          <returns>
            <text>A quantity point</text>
          </returns>
          <tparam name="ToRep">
            <text>a representation type to use for a target quantity point</text>
          </tparam>
          <relates>
            <reference id="jf+8of/tnFFu23NUqpOVB7bc4+U=">quantity_point</reference>
          </relates>
        </doc>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), QP::quantity_spec)) &amp;&amp;
          detail::SaneScaling&lt;QP::unit, ToU, typename QP::rep&gt;">
      <tparam name="ToU" class="constant" type="Unit auto"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="LkmGHF5yYv1WCn708FzwCrjBaYc=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="168" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point&apos;s unit</text>
          </brief>
          <para>
            <text>Implicit conversions between quantity points of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto qp = value_cast&lt;si::second&gt;(quantity_point{1234 * ms});</text>
          </para>
          <tparam name="ToU">
            <text>a unit to use for a target quantity point</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), Q::quantity_spec)) &amp;&amp;
          RepresentationOf&lt;ToRep, Q::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename Q::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;Q::unit, ToU, ToRep&gt;">
      <tparam name="ToRep" class="type"/>
      <tparam name="ToU" class="constant" type="Unit auto"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="value_cast" id="LEZNgnYDHmBepYrn22C+GzyThEE=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="124" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), Q::quantity_spec)) &amp;&amp;
          RepresentationOf&lt;ToRep, Q::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename Q::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;Q::unit, ToU, ToRep&gt;">
      <tparam name="ToU" class="constant" type="Unit auto"/>
      <tparam name="ToRep" class="type"/>
      <tparam name="FwdQ" class="type"/>
      <tparam name="Q" class="type" default="std::remove_cvref_t&lt;FwdQ&gt;"/>
      <function name="value_cast" id="AaKPKjVhsxSDYJsVjo6KnQiQVuI=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="115" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="Quantity">
          </type>
        </return>
        <param name="q">
          <type class="rvalue-reference">
            <pointee-type name="FwdQ"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity&apos;s unit and representation type</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto q = value_cast&lt;us, int&gt;(1.23 * ms);</text>
          </para>
          <tparam name="ToU">
            <text>a unit to use for the target quantity</text>
          </tparam>
          <tparam name="ToRep">
            <text>a representation type to use for the target quantity</text>
          </tparam>
        </doc>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), QP::quantity_spec)) &amp;&amp;
          RepresentationOf&lt;ToRep, QP::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename QP::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;QP::unit, ToU, ToRep&gt;">
      <tparam name="ToRep" class="type"/>
      <tparam name="ToU" class="constant" type="Unit auto"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="nBFGFoGNzmNWVyBwxqvJUSVTzLY=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="217" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
      </function>
    </template>
    <template requires="(MP_UNITS_WEAK_UNIT_OF(MP_UNITS_REMOVE_CONST(decltype(ToU)), QP::quantity_spec)) &amp;&amp;
          RepresentationOf&lt;ToRep, QP::quantity_spec&gt; &amp;&amp; std::constructible_from&lt;ToRep, typename QP::rep&gt; &amp;&amp;
          detail::SaneScaling&lt;QP::unit, ToU, ToRep&gt;">
      <tparam name="ToU" class="constant" type="Unit auto"/>
      <tparam name="ToRep" class="type"/>
      <tparam name="FwdQP" class="type"/>
      <tparam name="QP" class="type" default="std::remove_cvref_t&lt;FwdQP&gt;"/>
      <function name="value_cast" id="hauH8W+0Vx+X8PgBd3IsQtSHc38=">
        <file short-path="mp-units/framework/value_cast.h" source-path="src/core/include/mp-units/framework/value_cast.h" line="206" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto" constraint="QuantityPoint">
          </type>
        </return>
        <param name="qp">
          <type class="rvalue-reference">
            <pointee-type name="FwdQP"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Explicit cast of a quantity point&apos;s unit and representation type</text>
          </brief>
          <para>
            <text>Implicit conversions between quantities of different types are allowed only for &quot;safe&quot; (e.g. non-truncating) conversion. In truncating cases an explicit cast have to be used.</text>
          </para>
          <para>
            <text>auto qp = value_cast&lt;us, int&gt;(quantity_point{1.23 * ms});</text>
          </para>
          <tparam name="ToU">
            <text>a unit to use for the target quantity</text>
          </tparam>
          <tparam name="ToRep">
            <text>a representation type to use for the target quantity</text>
          </tparam>
        </doc>
      </function>
    </template>
    <function name="operator&lt;&lt;" id="5mQ0miTnQ1aGOduuzpFHF+i97bA=">
      <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="255" class="def"/>
      <attr id="operator" name="lshift" value="23"/>
      <return>
        <type class="lvalue-reference">
          <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT&gt;"/>
        </type>
      </return>
      <param name="os">
        <type class="lvalue-reference">
          <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT&gt;"/>
        </type>
      </param>
      <param name="str">
        <type class="lvalue-reference">
          <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
        </type>
      </param>
      <doc>
        <brief>
          <text>Stream insertion operator</text>
        </brief>
        <returns>
          <text>Reference to the current output stream</text>
        </returns>
        <param name="os">
          <text>An output stream</text>
        </param>
        <param name="str">
          <text>The object to output</text>
        </param>
      </doc>
    </function>
    <function name="operator&lt;&lt;" id="uU69M81j415N+/ovQMheKoO6uuw=">
      <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="270" class="def"/>
      <attr id="constexpr-kind" name="constexpr" value="1"/>
      <attr id="operator" name="lshift" value="23"/>
      <return>
        <type class="lvalue-reference">
          <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
        </type>
      </return>
      <param name="os">
        <type class="lvalue-reference">
          <pointee-type id="qVB6RaYxnISW025SIv8LrTS8AP4=" name="std::ostream"/>
        </type>
      </param>
      <param name="vec">
        <type class="lvalue-reference">
          <pointee-type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector" cv-qualifiers="const"/>
        </type>
      </param>
      <doc>
        <brief>
          <text>Stream insertion operator</text>
        </brief>
        <returns>
          <text>Reference to the current output stream</text>
        </returns>
        <param name="os">
          <text>An output stream</text>
        </param>
        <param name="vec">
          <text>The object to output</text>
        </param>
      </doc>
    </function>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="Traits" class="type"/>
      <tparam name="D" class="type"/>
      <function name="operator&lt;&lt;" id="TU9A0PCj+aNAhGaSziehItJxD5Y=">
        <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="323" class="def"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT, Traits&gt;"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT, Traits&gt;"/>
          </type>
        </param>
        <param name="d">
          <type name="D"/>
        </param>
        <doc>
          <brief>
            <text>Stream insertion operator</text>
          </brief>
          <returns>
            <text>Reference to the current output stream</text>
          </returns>
          <param name="os">
            <text>An output stream</text>
          </param>
          <param name="d">
            <text>The object to output</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="Traits" class="type"/>
      <tparam name="R" class="constant" type="auto"/>
      <tparam name="Rep" class="type"/>
      <function name="operator&lt;&lt;" requires="requires { os &lt;&lt; q.numerical_value_ref_in(q.unit); }" id="4DeCMozfXIrZqGJTMeFGjZb2CgA=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="670" class="def"/>
        <attr id="operator" name="lshift" value="23"/>
        <return>
          <type class="lvalue-reference">
            <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT, Traits&gt;"/>
          </type>
        </return>
        <param name="os">
          <type class="lvalue-reference">
            <pointee-type id="mpn2jMEB+4++fyRr0FJdGEmL2e4=" name="std::basic_ostream&lt;CharT, Traits&gt;"/>
          </type>
        </param>
        <param name="q">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R, Rep&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Stream insertion operator</text>
          </brief>
          <returns>
            <text>Reference to the current output stream</text>
          </returns>
          <param name="os">
            <text>An output stream</text>
          </param>
          <param name="q">
            <text>The object to output</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator==" id="PVDbj2p3oNOa3X0H0FwD69YSiV8=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="233" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N2">
              <element-type name="CharT" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator==" id="Mlpl8Nm4o6jNXdczA/INKzQnTbI=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="227" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <tparam name="M2" class="constant" type="std::size_t"/>
      <function name="operator==" exception-spec="noexcept" id="olSgDDrWJbJiIJPCT9n5mwO5Y2M=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="166" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N2, M2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="U2" class="type"/>
      <function name="operator==" id="L8Lk7t+BNqduI6RbtFcW0PBhEqk=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="85" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="u2">
          <type name="U2"/>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="u2">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="Q2" class="type"/>
      <tparam name="U2" class="type"/>
      <function name="operator==" id="cSNzqg9awp0x7Gp5AYlU/H3mg2g=">
        <file short-path="mp-units/framework/reference.h" source-path="src/core/include/mp-units/framework/reference.h" line="79" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference"/>
        </param>
        <param name="rhs">
          <type id="siSlJnnERPivPzD7ox9u9S+grLA=" name="reference&lt;Q2, U2&gt;"/>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp; std::equality_comparable_with&lt;rep, Value&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator==" id="EOYCDxYHCbdqjymmNKc8Ej41Kcs=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="628" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="requires { typename std::common_type_t&lt;quantity, quantity&lt;R2, Rep2&gt;&gt;; } &amp;&amp;
             std::equality_comparable&lt;typename std::common_type_t&lt;quantity, quantity&lt;R2, Rep2&gt;&gt;::rep&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator==" id="kWCjRth9URffvU3hCLOhTDAXESk=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="617" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="std::equality_comparable_with&lt;quantity_type, typename QP2::quantity_type&gt;">
      <tparam name="QP" class="type"/>
      <tparam name="QP2" class="type"/>
      <function name="operator==" id="EcANxYNtTAVyrn/+V2W8uvXaBPc=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="540" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="eq" value="28"/>
        <attr id="nodiscard"/>
        <return>
          <type name="bool"/>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="QP2" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Equality operator</text>
          </brief>
          <returns>
            <mono>true</mono>
            <text> if the objects are equal, </text>
            <mono>false</mono>
            <text> otherwise</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator&lt;=&gt;" id="WbaX6abZL2tuhkVIAZgcK3SQwS8=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="246" class="def"/>
        <attr id="constexpr-kind" name="consteval" value="2"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N2">
              <element-type name="CharT" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <function name="operator&lt;=&gt;" id="3uqdPGmKAQOGJPGGAvrudpj0l3s=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="240" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="N2" class="constant" type="std::size_t"/>
      <tparam name="M2" class="constant" type="std::size_t"/>
      <function name="operator&lt;=&gt;" exception-spec="noexcept" id="vJg8Yqmb6i47amna5RKIXcOBn24=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="156" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N2, M2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="detail::DimensionlessOne&lt;Q::reference&gt; &amp;&amp; std::three_way_comparable_with&lt;rep, Value&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="Value" class="type"/>
      <function name="operator&lt;=&gt;" id="FVq8M4jO5ogb1VLvRuro/vi2xrE=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="646" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="Value" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="requires { typename std::common_type_t&lt;quantity, quantity&lt;R2, Rep2&gt;&gt;; } &amp;&amp;
             std::three_way_comparable&lt;typename std::common_type_t&lt;quantity, quantity&lt;R2, Rep2&gt;&gt;::rep&gt;">
      <tparam name="Q" class="type"/>
      <tparam name="R2" class="constant" type="auto"/>
      <tparam name="Rep2" class="type"/>
      <function name="operator&lt;=&gt;" id="dGAgnJrt1OcbU0bnyLcjVuG1htk=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="635" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="Q" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R2, Rep2&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template requires="std::three_way_comparable_with&lt;quantity_type, typename QP2::quantity_type&gt;">
      <tparam name="QP" class="type"/>
      <tparam name="QP2" class="type"/>
      <function name="operator&lt;=&gt;" id="0o19y6W7abRl3BdK1vkPi48NMtY=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="550" class="def"/>
        <attr id="constexpr-kind" name="constexpr" value="1"/>
        <attr id="operator" name="3way" value="34"/>
        <attr id="nodiscard"/>
        <return>
          <type class="auto" keyword="auto">
          </type>
        </return>
        <param name="lhs">
          <type class="lvalue-reference">
            <pointee-type name="QP" cv-qualifiers="const"/>
          </type>
        </param>
        <param name="rhs">
          <type class="lvalue-reference">
            <pointee-type name="QP2" cv-qualifiers="const"/>
          </type>
        </param>
        <doc>
          <brief>
            <text>Three-way comparison operator</text>
          </brief>
          <returns>
            <text>The relative order of the objects</text>
          </returns>
          <param name="lhs">
            <text>The left operand</text>
          </param>
          <param name="rhs">
            <text>The right operand</text>
          </param>
        </doc>
      </function>
    </template>
    <template>
      <tparam name="R" class="constant" type="Reference auto"/>
      <variable name="absolute" id="s9qbQc1MpEdSiU6zjgpvAizGjwI=" default="{}">
        <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="67" class="def"/>
        <attr id="is-constexpr"/>
        <type id="Y/D9YeZDEqNzCzYpf+Eao1d0mDk=" name="point_&lt;decltype(R)&gt;"/>
      </variable>
    </template>
    <template>
      <tparam name="R" class="constant" type="Reference auto"/>
      <variable name="delta" id="LVeBlQ5YDRMU83pN/GPzPRmhMRw=" default="{}">
        <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="61" class="def"/>
        <attr id="is-constexpr"/>
        <type id="D3F/Pkcze5HecC2Ncx6iQ+W2ceU=" name="delta_&lt;decltype(R)&gt;"/>
      </variable>
    </template>
    <variable name="dimension_one" id="YP2F8oyOwGjwuv+nY/2QTPYqMaM=" default="dimension_one">
      <file short-path="mp-units/framework/dimension.h" source-path="src/core/include/mp-units/framework/dimension.h" line="175" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="Y9loPHI3aqIBUh1WW5wAQ0Y/Qrc=" name="dimension_one"/>
    </variable>
    <variable name="dimensionless" id="NsCwHoCJNI8u6s/PJPrOFdwQhzM=" default="dimensionless">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="563" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="9IoZRBFHXewCAftgtSxh0AWMaKM=" name="dimensionless"/>
      <doc>
        <brief>
          <text>Quantity of dimension one</text>
        </brief>
        <para>
          <text>Quantity of dimension one also commonly named as &quot;dimensionless&quot; is a quantity with a dimension for which all the exponents of the factors corresponding to the base dimensions are zero.</text>
        </para>
      </doc>
    </variable>
    <template>
      <tparam name="T" class="type"/>
      <variable name="disable_real" id="AaRuUCQ8OjemE31BuAnMRgfe6bg=" default="false">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="199" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
        <doc>
          <brief>
            <text>//////////// REAL SCALAR ///////////////</text>
          </brief>
        </doc>
      </variable>
    </template>
    <template class="explicit">
      <targ class="type" type="bool"/>
      <variable name="disable_real" id="tXhw1ZwwGPvYqhlaA1c7zWRO8kQ=" default="true">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="202" class="def"/>
        <attr id="is-inline"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <variable name="imag" id="3MUC8dna4r7mxJ9vJOSG+uzN2QU=" default="imag">
      <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="132" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="Mbx+iAZXot0X2K2fgwC/IEEXYHU=" name="mp_units::detail::imag_impl::imag_t"/>
    </variable>
    <template>
      <tparam name="Rep" class="type"/>
      <variable name="is_complex" id="IKONOhkPpd8eKjkuj5E+w8mC+7I=" default="false">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="80" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Type" class="template">
        <tparam class="type"/>
      </tparam>
      <variable name="is_derived_from_specialization_of" id="3QzRpgaUuC5oSbtupW7bKzP+Mgs=" default="requires(T* t) { detail::to_base_specialization_of&lt;Type&gt;(t); }">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="98" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Type" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <variable name="is_derived_from_specialization_of_v" id="Wk/OxFAlGxqdp1ZbtU6HF+FgsFM=" default="requires(T* t) { detail::to_base_specialization_of_v&lt;Type&gt;(t); }">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="101" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <variable name="is_kind" id="sQ6jby/Ne9LMH/wfFgpm1mI5Hz0=" default="is_kind">
      <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="245" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="YL6ZGeo/28JznPB+3jNXH52jMYA=" name="is_kind"/>
    </variable>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="U" class="type"/>
      <variable name="is_same_v" id="1im7VpWHN67yYWg5kW60NBWbzG8=" default="false">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="63" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template class="partial">
      <tparam name="T" class="type"/>
      <targ class="type" type="T"/>
      <targ class="type" type="T"/>
      <variable name="is_same_v" id="7E+yiQsdsrgGwfENmjsX4n3lOGY=" default="true">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="66" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <variable name="is_scalar" id="jb0Oe+3zS6/JewoG12+f4gO2J/4=" default="false">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="76" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Type" class="template">
        <tparam class="type"/>
      </tparam>
      <variable name="is_specialization_of" id="YBDTyg6ZLTvP0J/6Fnl85NWsjwI=" default="false">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="73" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template class="partial">
      <tparam name="Params" class="type"/>
      <tparam name="Type" class="template">
        <tparam class="type"/>
      </tparam>
      <targ class="type" type="Type&lt;Params...&gt;"/>
      <targ class="template" name="Type"/>
      <variable name="is_specialization_of" id="v1xgmLz3yIHkxSPOWgITrSCT+1o=" default="true">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="76" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="Type" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <variable name="is_specialization_of_v" id="Fkl+D8qBKYVdchwIJOugSBuDDr4=" default="false">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="79" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template class="partial">
      <tparam name="Params" class="constant" type="auto"/>
      <tparam name="Type" class="template">
        <tparam class="constant" type="auto"/>
      </tparam>
      <targ class="type" type="Type&lt;Params...&gt;"/>
      <targ class="template" name="Type"/>
      <variable name="is_specialization_of_v" id="j9epNb4r6sZJxnE/zy0pICKMyPI=" default="true">
        <file short-path="mp-units/ext/type_traits.h" source-path="src/core/include/mp-units/ext/type_traits.h" line="82" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <variable name="is_tensor" id="GwDFBKiFyzA22n6JlTYXBiL6NpU=" default="false">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="88" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template>
      <tparam name="From" class="type"/>
      <tparam name="To" class="type"/>
      <variable name="is_value_preserving" id="yHo+UYDQSdt4cHyf+VGTa8mkl0I=" default="treat_as_floating_point&lt;To&gt; || !treat_as_floating_point&lt;From&gt;">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="73" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
        <doc>
          <brief>
            <text>Specifies if a specific conversion between two types preserves the value</text>
          </brief>
          <para>
            <text>This type trait should be specialized for a custom representation types to specify weather the conversion from the source type to the destination type preserves the value or not. Value-truncating conversions should be forced by the user with explicit casts.</text>
          </para>
          <tparam name="From">
            <text>a source representation type</text>
          </tparam>
          <tparam name="To">
            <text>a destination representation type</text>
          </tparam>
        </doc>
      </variable>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <variable name="is_vector" id="CK5GNcK/5tx2N1dYSE36PretocI=" default="false">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="84" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
      </variable>
    </template>
    <template requires="requires { typename kind_of_&lt;decltype(Q)&gt;; }">
      <tparam name="Q" class="constant" type="QuantitySpec auto"/>
      <variable name="kind_of" id="9b20cY6Gl+w5MYfhQpwvus//dVE=">
        <file short-path="mp-units/framework/quantity_spec.h" source-path="src/core/include/mp-units/framework/quantity_spec.h" line="588" class="def"/>
        <attr id="is-constexpr"/>
        <type id="ACTfuwy0RbQx/b89bIw2JeKgqPM=" name="kind_of_&lt;decltype(Q)&gt;"/>
      </variable>
    </template>
    <template>
      <tparam name="N" class="constant" type="intmax_t"/>
      <variable name="known_first_factor" id="L2iaLaAQc0McmsHukb+lksAYvXE=" default="std::nullopt">
        <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="66" class="def"/>
        <attr id="is-constexpr"/>
        <type id="z1MQlGOI6cGVLsSyAwsFX6YUBbk=" name="std::optional&lt;intmax_t&gt;"/>
        <doc>
          <brief>
            <text>/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</text>
          </brief>
        </doc>
      </variable>
    </template>
    <template requires="(detail::get_base_value(V) &gt; 0)">
      <tparam name="V" class="constant" type="MagArg auto"/>
      <variable name="mag" id="2ArJcxPSaiZeCaMYuAM/4ms9FvM=" default="detail::make_magnitude&lt;V&gt;()">
        <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="71" class="def"/>
        <attr id="is-constexpr"/>
        <type class="auto" keyword="auto" constraint="UnitMagnitude">
        </type>
      </variable>
    </template>
    <variable name="mag_pi" id="xCGFV47Lc6gRD245MJzlScjsXMs=" default="mag&lt;pi&gt;">
      <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="99" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type class="auto" keyword="auto" constraint="UnitMagnitude">
      </type>
    </variable>
    <template requires="(detail::get_base_value(Base) &gt; 0)">
      <tparam name="Base" class="constant" type="MagArg auto"/>
      <tparam name="Num" class="constant" type="int"/>
      <tparam name="Den" class="constant" type="int" default="1"/>
      <variable name="mag_power" id="E0uM/AjChuWIgsAbKn5Sf1HrTXI=" default="pow&lt;Num, Den&gt;(mag&lt;Base&gt;)">
        <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="82" class="def"/>
        <attr id="is-constexpr"/>
        <type class="auto" keyword="auto" constraint="UnitMagnitude">
        </type>
        <doc>
          <brief>
            <text>Create a Magnitude which is some rational number raised to a rational power.</text>
          </brief>
        </doc>
      </variable>
    </template>
    <template requires="(N &gt; 0)">
      <tparam name="N" class="constant" type="intmax_t"/>
      <tparam name="D" class="constant" type="intmax_t"/>
      <variable name="mag_ratio" id="RLR6J3dj96Lusj3JVPMst32X79A=" default="detail::prime_factorization_v&lt;N&gt; / detail::prime_factorization_v&lt;D&gt;">
        <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="75" class="def"/>
        <attr id="is-constexpr"/>
        <type class="auto" keyword="auto" constraint="UnitMagnitude">
        </type>
      </variable>
    </template>
    <variable name="magnitude" id="TWIOttgb0/bTG7xzh6rTaJhB09I=" default="magnitude">
      <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="251" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="lpglSFVzmg9TiyUsfUIas2aqXlc=" name="mp_units::detail::magnitude_impl::magnitude_t"/>
    </variable>
    <variable name="modulus" id="F8M9ITKRJTvzOG2nJoScJL9mscg=" default="modulus">
      <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="163" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="gOC7BuPSqLTCNjxihoi5y4iWMGA=" name="mp_units::detail::modulus_impl::modulus_t"/>
    </variable>
    <variable name="one" id="fGy+5BTgilpsRvYCb61nArcnOrQ=" default="one">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="528" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="+v+1NlFes/kYvLQ1UY7zDYGY6LM=" name="one"/>
    </variable>
    <variable name="parts_per_million" id="pEm+w6TezMbOfyKCpVsmHJX2qtE=" default="parts_per_million">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="659" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="+PEwhb5IiFzVW2Xt/ZNYQBBEcoE=" name="parts_per_million"/>
    </variable>
    <variable name="per_mille" id="ggIXbaSe2Yl0EAs+QYagE4NM4ks=" default="per_mille">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="658" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="FvgSARfVJD2/PsS4hQpN+KKZhtc=" name="per_mille"/>
    </variable>
    <variable name="percent" id="qwmG9UGB/dn9kCKFQEwP715BaW4=" default="percent">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="657" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="IfrE4sWb8Db2oZnIjGsgT9Ncxso=" name="percent"/>
    </variable>
    <variable name="pi" id="95mT5y/KfRXcmzH08hc9O4NMKq8=" default="pi">
      <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="93" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="xfzQxS6HL4fjaL3YGdUM/w5S4HU=" name="pi"/>
    </variable>
    <template>
      <tparam name="R" class="constant" type="Reference auto"/>
      <variable name="point" id="UewHIdGAVpKXnyxm+iUXTKKjeeo=" default="{}">
        <file short-path="mp-units/framework/construction_helpers.h" source-path="src/core/include/mp-units/framework/construction_helpers.h" line="64" class="def"/>
        <attr id="is-constexpr"/>
        <type id="Y/D9YeZDEqNzCzYpf+Eao1d0mDk=" name="point_&lt;decltype(R)&gt;"/>
      </variable>
    </template>
    <variable name="ppm" id="mm5eDmYyEPbdXqhN1SfGZgsjuIA=" default="parts_per_million">
      <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="660" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type class="auto" keyword="auto">
      </type>
    </variable>
    <variable name="real" id="vfOLPysKZMvrYrK5+T6duCAqL7k=" default="real">
      <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="108" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type id="ojLEIR3xCIIfWRjLh2CiVd/W7iw=" name="mp_units::detail::real_impl::real_t"/>
    </variable>
    <template>
      <tparam name="U" class="constant" type="Unit auto"/>
      <variable name="space_before_unit_symbol" id="4eqbsjLze2XFiTDLgjXYNiLsYrY=" default="true">
        <file short-path="mp-units/framework/unit.h" source-path="src/core/include/mp-units/framework/unit.h" line="767" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
        <doc>
          <brief>
            <text>Puts a space &apos; &apos; sign before a unit symbol</text>
          </brief>
          <para>
            <text>Quantities of some units (e.g. degree, arcminute, arcsecond) should not be printed with the space between a number and a unit. For those a partial specialization with the value </text>
            <mono>false</mono>
            <text> should be provided.</text>
          </para>
        </doc>
      </variable>
    </template>
    <template>
      <tparam name="Rep" class="type"/>
      <variable name="treat_as_floating_point" id="VitRCeQxagEksn3IJjYvI9QdDkM=" default="std::chrono::treat_as_floating_point_v&lt;value_type_t&lt;Rep&gt;&gt;">
        <file short-path="mp-units/framework/customization_points.h" source-path="src/core/include/mp-units/framework/customization_points.h" line="55" class="def"/>
        <attr id="is-constexpr"/>
        <type name="bool"/>
        <doc>
          <brief>
            <text>Specifies if a value of a type should be treated as a floating-point value</text>
          </brief>
          <para>
            <text>This type trait should be specialized for a custom representation type to specify that values of this type should be treated by the library as a floating-point ones which will enable implicit conversions between quantities.</text>
          </para>
          <tparam name="Rep">
            <text>a representation type for which a type trait is defined</text>
          </tparam>
        </doc>
      </variable>
    </template>
    <template>
      <tparam name="QS" class="constant" type="QuantitySpec auto"/>
      <variable name="zeroth_point_origin" id="+UWfjopVkXHA5FRqYDYrl6SSA5s=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="141" class="def"/>
        <attr id="is-constexpr"/>
        <type id="4gzSuJ3vcj7I1i8+nx3QU1WEDxs=" name="zeroth_point_origin_&lt;QS&gt;"/>
      </variable>
    </template>
    <variable name="π" id="EXSJs3HbHy9IN8wvgVuVw9wmjhM=" default="pi">
      <file short-path="mp-units/framework/unit_magnitude.h" source-path="src/core/include/mp-units/framework/unit_magnitude.h" line="97" class="def"/>
      <attr id="is-inline"/>
      <attr id="is-constexpr"/>
      <type class="auto" keyword="auto">
      </type>
    </variable>
    <template>
      <tparam name="U" class="type"/>
      <concept name="AssociatedUnit" id="J7egnv3Judb93MH9B+rHCsAdVUc=" constraint="Unit&lt;U&gt; &amp;&amp; detail::has_associated_quantity(U{})">
        <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="94"/>
        <doc>
          <brief>
            <text>A concept matching all units that can be used as quantity references</text>
          </brief>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="Dimension" id="3NBVkb+vl1GEzYzLBNBFsbrAWjc=" constraint="std::derived_from&lt;T, detail::dimension_interface&gt; &amp;&amp; detail::SymbolicConstant&lt;T&gt;">
        <file short-path="mp-units/framework/dimension_concepts.h" source-path="src/core/include/mp-units/framework/dimension_concepts.h" line="44"/>
        <doc>
          <brief>
            <text>A concept matching all dimensions in the library.</text>
          </brief>
          <para>
            <text>Satisfied by all dimension types in the library.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="D" class="constant" type="auto"/>
      <concept name="DimensionOf" id="1WvAb633Xj9Ouc7AAER07YARhtE=" constraint="Dimension&lt;T&gt; &amp;&amp; Dimension&lt;MP_UNITS_REMOVE_CONST(decltype(D))&gt; &amp;&amp; (T{} == D)">
        <file short-path="mp-units/framework/dimension_concepts.h" source-path="src/core/include/mp-units/framework/dimension_concepts.h" line="67"/>
        <doc>
          <brief>
            <text>A concept checking if the argument is of the same dimension.</text>
          </brief>
          <para>
            <text>Satisfied when both argument satisfy a </text>
            <mono>Dimension</mono>
            <text> concept and when they compare equal.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="PointOrigin" id="8lDXbDqV9ZXgKQyr490KvEukkMs=" constraint="std::derived_from&lt;T, detail::point_origin_interface&gt; &amp;&amp; detail::SymbolicConstant&lt;T&gt;">
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="67"/>
        <doc>
          <brief>
            <text>A concept matching all quantity point origins in the library</text>
          </brief>
          <para>
            <text>Satisfied by either quantity points or by all types derived from </text>
            <mono>absolute_point_origin</mono>
            <text> class template.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="QS" class="constant" type="auto"/>
      <concept name="PointOriginFor" id="cUP1hXys0c6sKOgITwGZuhNiYAY=" constraint="PointOrigin&lt;T&gt; &amp;&amp; QuantitySpecOf&lt;MP_UNITS_REMOVE_CONST(decltype(QS)), T::_quantity_spec_&gt;">
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="75"/>
        <doc>
          <brief>
            <text>A concept matching all quantity point origins for a specified quantity type in the library</text>
          </brief>
          <para>
            <text>Satisfied by all quantity point origins that are defined using a provided quantity specification.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="PrefixableUnit" id="tFRjQLn+ZXsy2x8lXTEpu+vCDMI=" constraint="Unit&lt;T&gt; &amp;&amp; is_derived_from_specialization_of_v&lt;T, named_unit&gt;">
        <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="55"/>
        <doc>
          <brief>
            <text>A concept to be used to define prefixes for a unit</text>
          </brief>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="Quantity" id="yyqmxUndOWzJ7ywjWUrf1cx+b+w=" constraint="detail::is_derived_from_specialization_of_quantity&lt;T&gt;">
        <file short-path="mp-units/framework/quantity_concepts.h" source-path="src/core/include/mp-units/framework/quantity_concepts.h" line="57"/>
        <doc>
          <brief>
            <text>A concept matching all quantities in the library</text>
          </brief>
          <para>
            <text>Satisfied by all types being a either specialization or derived from </text>
            <mono>quantity</mono>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="QuantityLike" id="11dQ0gqiCQh7UoFfEYHP1oKM/nI=" constraint="!Quantity&lt;T&gt; &amp;&amp; detail::QuantityLikeImpl&lt;T, quantity_like_traits&gt; &amp;&amp; requires {
  typename quantity&lt;quantity_like_traits&lt;T&gt;::reference, typename quantity_like_traits&lt;T&gt;::rep&gt;;
}">
        <file short-path="mp-units/framework/quantity_concepts.h" source-path="src/core/include/mp-units/framework/quantity_concepts.h" line="89"/>
        <doc>
          <brief>
            <text>A concept matching all external quantities like types</text>
          </brief>
          <para>
            <text>Satisfied by all external types (not-defined in mp-units) that via a </text>
            <mono>quantity_like_traits</mono>
            <text> provide all quantity-specific information.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <tparam name="QS" class="constant" type="auto"/>
      <concept name="QuantityOf" id="8H1mp/5YNykSoawOe+9jNfyIvJs=" constraint="Quantity&lt;Q&gt; &amp;&amp; QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(QS))&gt; &amp;&amp;
                     ReferenceOf&lt;MP_UNITS_NONCONST_TYPE(Q::reference), QS&gt;">
        <file short-path="mp-units/framework/quantity_concepts.h" source-path="src/core/include/mp-units/framework/quantity_concepts.h" line="79"/>
        <doc>
          <brief>
            <text>A concept matching all quantities of the provided quantity spec</text>
          </brief>
          <para>
            <text>Satisfied by all quantities with the reference satisfying </text>
            <mono>ReferenceOf&lt;QS&gt;.</mono>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="QuantityPoint" id="W39C2FWTIs8x3gpKAmxdWGqbbAE=" constraint="detail::is_quantity_point&lt;T&gt;">
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="50"/>
        <doc>
          <brief>
            <text>A concept matching all quantity points in the library</text>
          </brief>
          <para>
            <text>Satisfied by all types being either a specialization or derived from </text>
            <mono>quantity_point</mono>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="QuantityPointLike" id="+yyiulIOrMnHkTw2bCliFKG6958=" constraint="!QuantityPoint&lt;T&gt; &amp;&amp; detail::QuantityLikeImpl&lt;T, quantity_point_like_traits&gt; &amp;&amp; requires {
  typename quantity_point&lt;quantity_point_like_traits&lt;T&gt;::reference, quantity_point_like_traits&lt;T&gt;::point_origin,
                          typename quantity_point_like_traits&lt;T&gt;::rep&gt;;
}">
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="137"/>
        <doc>
          <brief>
            <text>A concept matching all external quantity point like types</text>
          </brief>
          <para>
            <text>Satisfied by all external types (not-defined in mp-units) that via a </text>
            <mono>quantity_point_like_traits</mono>
            <text> provide all quantity_point-specific information.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="QP" class="type"/>
      <tparam name="V" class="constant" type="auto"/>
      <concept name="QuantityPointOf" id="Nl80q7Xyaqzd2TcuKHLTnV3pb9k=" constraint="QuantityPoint&lt;QP&gt; &amp;&amp; (ReferenceOf&lt;MP_UNITS_NONCONST_TYPE(QP::reference), V&gt; ||
                        detail::SameAbsolutePointOriginAs&lt;MP_UNITS_NONCONST_TYPE(QP::absolute_point_origin), V&gt;)">
        <file short-path="mp-units/framework/quantity_point_concepts.h" source-path="src/core/include/mp-units/framework/quantity_point_concepts.h" line="126"/>
        <doc>
          <brief>
            <text>A concept matching all quantity points of the provided property</text>
          </brief>
          <para>
            <text>Satisfied by all quantity points with a quantity_spec being the instantiation derived from the provided quantity_spec type, or quantity points having the origin with the same </text>
            <mono>absolute_point_origin</mono>
            <text>.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="QuantitySpec" id="IwYhIdOBt+Wx1smHieR+rmK3Fso=" constraint="std::derived_from&lt;T, detail::quantity_spec_interface_base&gt; &amp;&amp; detail::SymbolicConstant&lt;T&gt;">
        <file short-path="mp-units/framework/quantity_spec_concepts.h" source-path="src/core/include/mp-units/framework/quantity_spec_concepts.h" line="38"/>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="QS" class="constant" type="auto"/>
      <concept name="QuantitySpecOf" id="2Xn8qvuvMs3zS85JWD62TU0RTBY=" constraint="QuantitySpec&lt;T&gt; &amp;&amp; QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(QS))&gt; &amp;&amp; (mp_units::implicitly_convertible(T{}, QS))">
        <file short-path="mp-units/framework/quantity_spec_concepts.h" source-path="src/core/include/mp-units/framework/quantity_spec_concepts.h" line="60"/>
        <doc>
          <brief>
            <text>A concept matching all quantity specifications of a provided quantity spec value</text>
          </brief>
          <para>
            <text>Satisfied by all quantity specifications that are implicitly convertible to the provided </text>
            <mono>QS</mono>
            <text> value.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="Reference" id="umPMrasqmwSnPLUuWlfHmAr10cQ=" constraint="MP_UNITS_ASSOCIATED_UNIT_T(T) || is_specialization_of&lt;T, reference&gt;">
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="60"/>
        <doc>
          <brief>
            <text>A concept matching all references in the library.</text>
          </brief>
          <para>
            <text>Satisfied by all specializations of </text>
            <mono>reference.</mono>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="QS" class="constant" type="auto"/>
      <concept name="ReferenceOf" id="sbMStDrZIG41ErgjTBT0ZDjYCzs=" constraint="Reference&lt;T&gt; &amp;&amp; QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(QS))&gt; &amp;&amp;
                      QuantitySpecOf&lt;decltype(get_quantity_spec(T{})), QS&gt;">
        <file short-path="mp-units/framework/reference_concepts.h" source-path="src/core/include/mp-units/framework/reference_concepts.h" line="68"/>
        <doc>
          <brief>
            <text>A concept matching all references of the provided quantity spec</text>
          </brief>
          <para>
            <text>Satisfied by all references for which </text>
            <mono>QuantitySpecOf&lt;QS&gt;</mono>
            <text> is true.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <tparam name="V" class="constant" type="auto"/>
      <concept name="RepresentationOf" id="QAGCspKO6OOHx3kwvu6gNMdosZQ=" constraint="((QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(V))&gt; &amp;&amp;
    ((detail::QuantityKindSpec&lt;MP_UNITS_REMOVE_CONST(decltype(V))&gt; &amp;&amp; detail::SomeRepresentation&lt;T&gt;) ||
     detail::IsOfCharacter&lt;T, V.character&gt;)) ||
   (std::same_as&lt;quantity_character, decltype(V)&gt; &amp;&amp; detail::IsOfCharacter&lt;T, V&gt;))">
        <file short-path="mp-units/framework/representation_concepts.h" source-path="src/core/include/mp-units/framework/representation_concepts.h" line="344"/>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="Unit" id="eiCtnmytJiyk3q22KJ06LE65x9w=" constraint="std::derived_from&lt;T, detail::unit_interface&gt; &amp;&amp; detail::SymbolicConstant&lt;T&gt;">
        <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="46"/>
        <doc>
          <brief>
            <text>A concept matching all unit types in the library</text>
          </brief>
          <para>
            <text>Satisfied by all unit types provided by the library.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="T" class="type"/>
      <concept name="UnitMagnitude" id="RHQrYrgIZ/HOgN+X+yiQS9dsLIw=" constraint="is_specialization_of_v&lt;T, detail::unit_magnitude&gt;">
        <file short-path="mp-units/framework/unit_magnitude_concepts.h" source-path="src/core/include/mp-units/framework/unit_magnitude_concepts.h" line="62"/>
        <doc>
          <brief>
            <text>Concept to detect whether T is a valid UnitMagnitude.</text>
          </brief>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="U" class="type"/>
      <tparam name="QS" class="constant" type="auto"/>
      <concept name="UnitOf" id="epoe98n+Rg3kJ2maNxAL4Pb/2kM=" constraint="MP_UNITS_ASSOCIATED_UNIT&lt;U&gt; &amp;&amp; QuantitySpec&lt;MP_UNITS_REMOVE_CONST(decltype(QS))&gt; &amp;&amp;
  (implicitly_convertible(get_quantity_spec(U{}), QS) ||
   (unsatisfied&lt;&quot;Unit &apos;{}&apos; is associated with quantity of kind &apos;{}&apos; which is not convertible to the &apos;{}&apos; quantity&quot;&gt;(
     U{}, type_name(get_quantity_spec(U{})._quantity_spec_), type_name(QS))))">
        <file short-path="mp-units/framework/unit_concepts.h" source-path="src/core/include/mp-units/framework/unit_concepts.h" line="105"/>
        <doc>
          <brief>
            <text>A concept matching all units associated with the provided quantity spec</text>
          </brief>
          <para>
            <text>Satisfied by all units for which an associated quantity spec is implicitly convertible to the provided </text>
            <mono>QS</mono>
            <text> value.</text>
          </para>
        </doc>
      </concept>
    </template>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="N" class="constant" type="std::size_t"/>
      <guide name="basic_fixed_string" id="1ugBAU8elMl8vLIFHWOgfbtbQqU=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="266"/>
        <deduced>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N - 1&gt;"/>
        </deduced>
        <param name="str">
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N">
              <element-type name="CharT" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="Rest" class="type"/>
      <guide name="basic_fixed_string" id="95IrdRMe3OEH5lURr+tuBij8Pw0=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="263"/>
        <deduced>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, 1 + sizeof...(Rest)&gt;"/>
        </deduced>
        <param>
          <type name="CharT"/>
        </param>
        <param>
          <type is-pack="1" name="Rest"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="CharT" class="type"/>
      <tparam name="N" class="constant" type="std::size_t"/>
      <guide name="basic_fixed_string" id="pttfD1WVgvPdO1A59g50WyrPojQ=">
        <file short-path="mp-units/ext/fixed_string.h" source-path="src/core/include/mp-units/ext/fixed_string.h" line="269"/>
        <deduced>
          <type id="il08w7t9FJtOqxm3KaXMQ5bTy94=" name="basic_fixed_string&lt;CharT, N&gt;"/>
        </deduced>
        <param>
          <type id="E+n5yg7xWHA6p+48rPt8RyN0Gkk=" name="std::from_range_t"/>
        </param>
        <param>
          <type id="9ltnwJRAKDTm+ldPpBi2MjoHPd4=" name="std::array&lt;CharT, N&gt;"/>
        </param>
      </guide>
    </template>
    <template requires="(sizeof...(Args) &lt;= 2) &amp;&amp; requires { typename std::common_type_t&lt;Arg, Args...&gt;; }">
      <tparam name="Arg" class="type"/>
      <tparam name="Args" class="type"/>
      <guide name="cartesian_vector" id="VxCvF4el+0Av1YBqyV3tZ2EbVXU=">
        <file short-path="mp-units/cartesian_vector.h" source-path="src/core/include/mp-units/cartesian_vector.h" line="277"/>
        <deduced>
          <type id="iaJD5eCsQMUwszj5unSRWzRxrpY=" name="cartesian_vector&lt;std::common_type_t&lt;Arg, Args...&gt;&gt;"/>
        </deduced>
        <param>
          <type name="Arg"/>
        </param>
        <param>
          <type is-pack="1" name="Args"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <guide name="quantity" id="UbHqjbHPpgJbYj7kdHuEGOfCBtc=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="665"/>
        <deduced>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;quantity_like_traits&lt;Q&gt;::reference, quantity_like_traits&lt;Q&gt;::rep&gt;"/>
        </deduced>
        <param>
          <type name="Q"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="R" class="type"/>
      <tparam name="Value" class="type"/>
      <guide name="quantity" id="Jj7GKwXV3yiKa/ID/8lPjMdv964=">
        <file short-path="mp-units/framework/quantity.h" source-path="src/core/include/mp-units/framework/quantity.h" line="655"/>
        <deduced>
          <type id="F8330nXRcbWoqjgcYQ6nTJawdnY=" name="quantity&lt;R{}, Value&gt;"/>
        </deduced>
        <param name="v">
          <type name="Value"/>
        </param>
        <param>
          <type name="R"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <guide name="quantity_point" id="RxnWnX9rNszXTllYoRzfhtTDKcQ=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="567"/>
        <deduced>
          <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;Q::reference, default_point_origin(Q::reference), Q::rep&gt;"/>
        </deduced>
        <param name="q">
          <type name="Q"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="QP" class="type"/>
      <guide name="quantity_point" id="yzYafoSDCXwF/24Q31Ig6gcOMwk=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="573"/>
        <deduced>
          <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;quantity_point_like_traits&lt;QP&gt;::reference, quantity_point_like_traits&lt;QP&gt;::point_origin, quantity_point_like_traits&lt;QP&gt;::rep&gt;"/>
        </deduced>
        <param>
          <type name="QP"/>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="Q" class="type"/>
      <tparam name="PO" class="type"/>
      <guide name="quantity_point" id="xeQXAaiOWiAtNkYxhOb3B4d3Y6g=">
        <file short-path="mp-units/framework/quantity_point.h" source-path="src/core/include/mp-units/framework/quantity_point.h" line="570"/>
        <deduced>
          <type id="jf+8of/tnFFu23NUqpOVB7bc4+U=" name="quantity_point&lt;Q::reference, PO{}, Q::rep&gt;"/>
        </deduced>
        <param name="q">
          <type name="Q"/>
        </param>
        <param>
          <type name="PO"/>
        </param>
      </guide>
    </template>
    <guide name="symbol_text" id="YNBPBGbrgIHdgwTQOt4K0zpgPXY=">
      <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="173"/>
      <deduced>
        <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;1, 1&gt;"/>
      </deduced>
      <param>
        <type name="char"/>
      </param>
    </guide>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <guide name="symbol_text" id="eKnDQMCbvc3luxJE8ZNpF/eUkTs=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="178"/>
        <deduced>
          <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N, N&gt;"/>
        </deduced>
        <param>
          <type class="lvalue-reference">
            <pointee-type id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=" name="fixed_string&lt;N&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <guide name="symbol_text" id="P6aGwhCWBGohsF/jRboKF8GQwAE=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="175"/>
        <deduced>
          <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N - 1, N - 1&gt;"/>
        </deduced>
        <param>
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N">
              <element-type name="char" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <tparam name="M" class="constant" type="std::size_t"/>
      <guide name="symbol_text" id="+j1/l279nWwoNjVT3aKXrOc4M9E=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="184"/>
        <deduced>
          <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N, M&gt;"/>
        </deduced>
        <param>
          <type class="lvalue-reference">
            <pointee-type id="EKxgkugk3wT5zsZHALMguwAyC9M=" name="fixed_u8string&lt;N&gt;" cv-qualifiers="const"/>
          </type>
        </param>
        <param>
          <type class="lvalue-reference">
            <pointee-type id="6Qq3u+yranQzIvy0kkgD9lwu/Pw=" name="fixed_string&lt;M&gt;" cv-qualifiers="const"/>
          </type>
        </param>
      </guide>
    </template>
    <template>
      <tparam name="N" class="constant" type="std::size_t"/>
      <tparam name="M" class="constant" type="std::size_t"/>
      <guide name="symbol_text" id="H9bm/ihAPi4hCxSL2/7e/eh3h3o=">
        <file short-path="mp-units/framework/symbol_text.h" source-path="src/core/include/mp-units/framework/symbol_text.h" line="181"/>
        <deduced>
          <type id="MtIPwOHjim6LNMowN3XHq980sEU=" name="symbol_text&lt;N - 1, M - 1&gt;"/>
        </deduced>
        <param>
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="N">
              <element-type name="char8_t" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
        <param>
          <type class="lvalue-reference">
            <pointee-type class="array" bounds="M">
              <element-type name="char" cv-qualifiers="const"/>
            </pointee-type>
          </type>
        </param>
      </guide>
    </template>
  </namespace>
</namespace>
</mrdocs>
