forked from mpusz/mp-units
75 lines
32 KiB
HTML
75 lines
32 KiB
HTML
<!DOCTYPE html><html lang='en'><head><title>[qty.dim]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='https://fonts.googleapis.com/css2?family=Noto+Serif'/><link rel='stylesheet' type='text/css' href='https://fonts.googleapis.com/css2?family=Noto+Sans'/><link rel='stylesheet' type='text/css' href='https://fonts.googleapis.com/css2?family=Noto+Sans+Mono'/><link rel='icon' href='icon.png'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Normal'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='alternate stylesheet' type='text/css' href='normative-only.css' title='Notes and examples hidden'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:50pt'>5</a> Quantities and units library <a class='abbr_ref' href='index.html#quantities'>[quantities]</a></h1><h2 ><a class='secnum' style='min-width:65pt'>5.4</a> Reference <a class='abbr_ref' href='qty.ref.html#qty.dim'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.2</a> Dimension <a class='abbr_ref'>[qty.dim]</a></h3><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:95pt'>5.4.2.1</a> General <a class='abbr_ref' href='qty.dim.general.html'>[qty.dim.general]</a></h4><div class='para' id='general-1'><div class='marginalizedparent'><a class='marginalized' href='#general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1344'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>dim] specifies the components
|
|
for defining the dimension of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-11">IEC 60050, 112-01-11</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='concepts' class='section'><h4 ><a class='secnum' href='#concepts' style='min-width:95pt'>5.4.2.2</a> Concepts <a class='abbr_ref' href='qty.dim.concepts.html'>[qty.dim.concepts]</a></h4><div class='texpara'><div class='itemdecl' id='concepts-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#concepts-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='concept:Dimension'><span id='lib:Dimension'><span class='texttt'>Dimension</span></span></span></a> <span class='operator'>=</span> <a class='index' id='conceptref:SymbolicConstant'></a><span class='texttt'><i >SymbolicConstant</i></span><span class='anglebracket'><</span>T<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>T, <span class='texttt'><i >dimension-interface</i></span><span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <span class='texttt'><i >BaseDimension</i></span><a class='index' id='concept:BaseDimension'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension'><span class='texttt'>Dimension</span></span></a><span class='anglebracket'><</span>T<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='texttt'><i >is-derived-from-specialization-of</i></span><span class='anglebracket'><</span>T, base_dimension<span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T, <span class='keyword'>auto</span> D<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:DimensionOf' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='concept:DimensionOf'><span id='lib:DimensionOf'><span class='texttt'>DimensionOf</span></span></span></a> <span class='operator'>=</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_'><span class='texttt'>Dimension</span></span></a><span class='anglebracket'><</span>T<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension__'><span class='texttt'>Dimension</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>D<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span>T<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> D<span class='parenthesis'>)</span>;
|
|
</code></div></div></div><div id='types' class='section'><h4 ><a class='secnum' href='#types' style='min-width:95pt'>5.4.2.3</a> Types <a class='abbr_ref' href='qty.dim.types.html'>[qty.dim.types]</a></h4><div class='texpara'><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>symbol_text Symbol<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> <span id='lib:base_dimension'><a class='hidden_link' href='#lib:base_dimension' title='5.4.2.3 Types [qty.dim.types]'>base_dimension</a></span> <span class='operator'>:</span> <i >dimension-interface</i> <span class='curlybracket'>{</span>
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <i >symbol</i> <span class='operator'>=</span> Symbol; <span class='comment'>// <i >exposition only</i></span>
|
|
<span class='curlybracket'>}</span>;
|
|
|
|
<span class='curlybracket'>}</span>
|
|
</span></div><div class='para' id='types-1'><div class='marginalizedparent'><a class='marginalized' href='#types-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1375'>#</a></div><div class='texpara'><div id='types-1.sentence-1' class='sentence'><span class='texttt'>base_<span class='shy'></span>dimension</span> is used
|
|
to define the dimension of a base quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-08">IEC 60050, 112-01-08</a>)<a class='hidden_link' href='#types-1.sentence-1'>.</a></div> <div id='types-1.sentence-2' class='sentence'><span class='texttt'>Symbol</span> is its symbolic representation<a class='hidden_link' href='#types-1.sentence-2'>.</a></div> <div id='types-example-1' class='example'><div class='texpara'>[<i>Example <a href='#types-example-1'>1</a></i>: <span class='codeblock'><span class='keyword'>inline</span> <span class='keyword'>constexpr</span> <span class='keyword'>struct</span> dim_length <span class='keyword'>final</span> <span class='operator'>:</span> base_dimension<span class='anglebracket'><</span><span class='literal'>"L"</span><span class='anglebracket'>></span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span> dim_length;
|
|
</span> — <i>end example</i>]</div></div></div><div class='texpara'><span id='lib:derived_dimension'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:derived_dimension'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Expr<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> <i >derived-dimension-impl</i> <span class='comment'>// <i >exposition only</i></span>
|
|
<span class='operator'>:</span> <i >expr-fractions</i><span class='anglebracket'><</span><span class='keyword'>struct</span> dimension_one, Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>></span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:SymbolicConstant_'></a><i >SymbolicConstant</i><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Expr<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> derived_dimension <span class='keyword'>final</span> <span class='operator'>:</span> <i >dimension-interface</i>, <i >derived-dimension-impl</i><span class='anglebracket'><</span>Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>></span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
|
|
|
|
<span class='curlybracket'>}</span>
|
|
</span></span></div></div><div class='para' id='types-2'><div class='marginalizedparent'><a class='marginalized' href='#types-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1399'>#</a></div><div class='texpara'><div id='types-2.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>dimension</span> is used by the library
|
|
to represent the dimension of a derived quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-10">IEC 60050, 112-01-10</a>)<a class='hidden_link' href='#types-2.sentence-1'>.</a></div> <div id='types-example-2' class='example'><div class='texpara'>[<i>Example <a href='#types-example-2'>2</a></i>: <span class='codeblock'><span class='keyword'>constexpr</span> <span class='keyword'>auto</span> dim_acceleration <span class='operator'>=</span> isq<span class='operator'>::</span>speed<span class='operator'>.</span>dimension <span class='operator'>/</span> isq<span class='operator'>::</span>dim_time;
|
|
<span class='keyword'>int</span> x <span class='operator'>=</span> dim_acceleration; <span class='comment'>// error: cannot construct from</span>
|
|
<span class='comment'>// <span class='tcode_in_codeblock'>derived_<span class='shy'></span>dimension<isq​::​dim_<span class='shy'></span>length, per<power<isq​::​dim_<span class='shy'></span>time, 2>>></span></span>
|
|
</span> — <i>end example</i>]</div></div> <div id='types-2.sentence-2' class='sentence'>
|
|
A program that instantiates a specialization of <span class='texttt'>derived_<span class='shy'></span>dimension</span>
|
|
that is not a possible result of the library specifications
|
|
is ill-formed, no diagnostic required<a class='hidden_link' href='#types-2.sentence-2'>.</a></div></div><div class='texpara'><span id='lib:dimension_one'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:dimension_one'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
|
|
|
|
<span class='keyword'>struct</span> dimension_one <span class='keyword'>final</span> <span class='operator'>:</span> <i >dimension-interface</i>, <i >derived-dimension-impl</i><span class='anglebracket'><</span><span class='anglebracket'>></span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
|
|
|
|
<span class='curlybracket'>}</span>
|
|
</span></span></div></div><div class='para' id='types-3'><div class='marginalizedparent'><a class='marginalized' href='#types-3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1422'>#</a></div><div class='texpara'><div id='types-3.sentence-1' class='sentence'><span class='texttt'>dimension_<span class='shy'></span>one</span> represents the dimension of a quantity of dimension one (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-13">IEC 60050, 112-01-13</a>)<a class='hidden_link' href='#types-3.sentence-1'>.</a></div></div></div></div><div id='ops' class='section'><h4 ><a class='secnum' href='#ops' style='min-width:95pt'>5.4.2.4</a> Operations <a class='abbr_ref' href='qty.dim.ops.html'>[qty.dim.ops]</a></h4><div class='texpara'><span id='lib:dimension-interface'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:dimension-interface'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
|
|
|
|
<span class='keyword'>struct</span> <i >dimension-interface</i> <span class='curlybracket'>{</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension___'><span class='tcode_in_codeblock'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension____'><span class='tcode_in_codeblock'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_____'><span class='tcode_in_codeblock'>Dimension</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension______'><span class='tcode_in_codeblock'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_______'><span class='tcode_in_codeblock'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension________'><span class='tcode_in_codeblock'>Dimension</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_________'><span class='tcode_in_codeblock'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension__________'><span class='tcode_in_codeblock'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='operator'>=</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
<span class='curlybracket'>}</span>;
|
|
|
|
<span class='curlybracket'>}</span>
|
|
</span></span></div><div class='texpara'><div id='lib:Dimension,operator*'><div id='lib:operator*,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension___________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension____________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_____________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-1'><div class='marginalizedparent'><a class='marginalized' href='#ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1452'>#</a></div><div class='texpara'><div id='ops-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-multiply</i></span><span class='anglebracket'><</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>></span><span class='parenthesis'>(</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#ops-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,operator/'><div id='lib:operator/,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension______________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_______________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-2'><div class='marginalizedparent'><a class='marginalized' href='#ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1464'>#</a></div><div class='texpara'><div id='ops-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-divide</i></span><span class='anglebracket'><</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>></span><span class='parenthesis'>(</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#ops-2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,operator=='><div id='lib:operator==,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_________________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension__________________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='operator'>=</span><span class='parenthesis'>(</span>Lhs, Rhs<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-3'><div class='marginalizedparent'><a class='marginalized' href='#ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1476'>#</a></div><div class='texpara'><div id='ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>​::​</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'><</span>Lhs, Rhs<span class='anglebracket'>></span></span><a class='hidden_link' href='#ops-3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,inverse'><div id='lib:inverse,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:inverse,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension___________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> inverse<span class='parenthesis'>(</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension____________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> d<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-4'><div class='marginalizedparent'><a class='marginalized' href='#ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1487'>#</a></div><div class='texpara'><div id='ops-4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>dimension_<span class='shy'></span>one <span class='operator'>/</span> d</span><a class='hidden_link' href='#ops-4.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,pow'><div id='lib:pow,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:pow,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>intmax_t Num, std<span class='operator'>::</span>intmax_t Den <span class='operator'>=</span> <span class='literal'>1</span>, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_____________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Den <span class='operator'>!</span><span class='operator'>=</span> <span class='literal'>0</span><span class='parenthesis'>)</span>
|
|
<span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension______________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> pow<span class='parenthesis'>(</span>D d<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-5'><div class='marginalizedparent'><a class='marginalized' href='#ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1500'>#</a></div><div class='texpara'><div id='ops-5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-pow</i></span><span class='anglebracket'><</span>Num, Den, derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>></span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#ops-5.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,sqrt'><div id='lib:sqrt,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:sqrt,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_______________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> sqrt<span class='parenthesis'>(</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension________________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> d<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-6'><div class='marginalizedparent'><a class='marginalized' href='#ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1511'>#</a></div><div class='texpara'><div id='ops-6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'><</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>></span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#ops-6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,cbrt'><div id='lib:cbrt,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:cbrt,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension_________________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> cbrt<span class='parenthesis'>(</span><a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension__________________________'><span class='texttt'>Dimension</span></span></a> <span class='keyword'>auto</span> d<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='ops-7'><div class='marginalizedparent'><a class='marginalized' href='#ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1522'>#</a></div><div class='texpara'><div id='ops-7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'><</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>></span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#ops-7.sentence-1'>.</a></div></div></div></div></div><div id='sym.fmt' class='section'><h4 ><a class='secnum' href='#sym.fmt' style='min-width:95pt'>5.4.2.5</a> Symbol formatting <a class='abbr_ref' href='qty.dim.sym.fmt.html'>[qty.dim.sym.fmt]</a></h4><div class='texpara'><div id='lib:Dimension,dimension_symbol_to'><div id='lib:dimension_symbol_to,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:dimension_symbol_to,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> CharT <span class='operator'>=</span> <span class='keyword'>char</span>, std<span class='operator'>::</span>output_iterator<span class='anglebracket'><</span>CharT<span class='anglebracket'>></span> Out, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension___________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> Out dimension_symbol_to<span class='parenthesis'>(</span>Out out, D d, <span class='keyword'>const</span> dimension_symbol_formatting<span class='operator'>&</span> fmt <span class='operator'>=</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='sym.fmt-1'><div class='marginalizedparent'><a class='marginalized' href='#sym.fmt-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1536'>#</a></div><div class='texpara'><div id='sym.fmt-1.sentence-1' class='sentence'><i >Effects</i>: TBD<a class='hidden_link' href='#sym.fmt-1.sentence-1'>.</a></div></div></div></div><div class='para' id='sym.fmt-2'><div class='marginalizedparent'><a class='marginalized' href='#sym.fmt-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1540'>#</a></div><div class='texpara'><div id='sym.fmt-2.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#sym.fmt-2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Dimension,dimension_symbol'><div id='lib:dimension_symbol,Dimension'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:dimension_symbol,Dimension'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'><</span>dimension_symbol_formatting fmt <span class='operator'>=</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> CharT <span class='operator'>=</span> <span class='keyword'>char</span>, <a href='#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension____________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>></span>
|
|
<span class='keyword'>consteval</span> std<span class='operator'>::</span>string_view dimension_symbol<span class='parenthesis'>(</span>D<span class='parenthesis'>)</span>;
|
|
</code></div></div></div></div><div class='para' id='sym.fmt-3'><div class='marginalizedparent'><a class='marginalized' href='#sym.fmt-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1552'>#</a></div><div class='texpara'><div id='sym.fmt-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
|
|
<span class='codeblock'>TBD<span class='operator'>.</span>
|
|
</span></div></div></div></div></div></div></body></html> |