<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libstdc++: Rational Arithmetic</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">libstdc++</div> </td> </tr> </tbody> </table> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('a01174.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">Rational Arithmetic</div> </div> <div class="ingroups"><a class="el" href="a01176.html">Utilities</a></div></div> <div class="contents"> <div class="dynheader"> Collaboration diagram for Rational Arithmetic:</div> <div class="dyncontent"> <center><table><tr><td><img src="a01174.png" border="0" alt="" usemap="#a01174"/> <map name="a01174" id="a01174"> <area shape="rect" id="node1" href="a01176.html" title="Utilities" alt="" coords="7,5,68,35"/></map> </td></tr></table></center> </div> <h2><a name="nested-classes"></a> Classes</h2> <ul> <li>struct <a class="el" href="a00671.html">std::ratio< _Num, _Den ></a> <dl class="el"><dd class="mdescRight">Provides compile-time rational arithmetic. <a href="a00671.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00672.html">std::ratio_add< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00672.html" title="ratio_add">ratio_add</a> <a href="a00672.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00673.html">std::ratio_divide< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00673.html" title="ratio_divide">ratio_divide</a> <a href="a00673.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00674.html">std::ratio_equal< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00674.html" title="ratio_equal">ratio_equal</a> <a href="a00674.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00675.html">std::ratio_multiply< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00675.html" title="ratio_multiply">ratio_multiply</a> <a href="a00675.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00676.html">std::ratio_not_equal< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00676.html" title="ratio_not_equal">ratio_not_equal</a> <a href="a00676.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00677.html">std::ratio_subtract< _R1, _R2 ></a> <dl class="el"><dd class="mdescRight"><a class="el" href="a00677.html" title="ratio_subtract">ratio_subtract</a> <a href="a00677.html#details">More...</a><br/></dl></ul> <h2><a name="typedef-members"></a> Typedefs</h2> <ul> <li><a class="anchor" id="ga2c2933c16c723af4d77eb939438617ca"></a><!-- doxytag: member="ratio::type" ref="ga2c2933c16c723af4d77eb939438617ca" args="" --> typedef ratio< num, den > <b>std::ratio::type</b> <li><a class="anchor" id="ga3b4c9a8c51e689dc123ee91c11f87f9b"></a><!-- doxytag: member="ratio::type" ref="ga3b4c9a8c51e689dc123ee91c11f87f9b" args="" --> typedef ratio_multiply< _R1, <br class="typebreak"/> ratio< _R2::den, _R2::num ><br class="typebreak"/> >::type <b>std::ratio_divide::type</b> <li><a class="anchor" id="ga79d96b6335c46a5a2a7386970a91cd9b"></a><!-- doxytag: member="ratio::type" ref="ga79d96b6335c46a5a2a7386970a91cd9b" args="" --> typedef ratio< __safe_multiply<br class="typebreak"/> <(_R1::num/__gcd1),(_R2::num/__gcd2)><br class="typebreak"/> ::value, __safe_multiply<br class="typebreak"/> <(_R1::den/__gcd2),(_R2::den/__gcd1)><br class="typebreak"/> ::value > <b>std::ratio_multiply::type</b> <li><a class="anchor" id="ga151756d11e2bb4503241dfcf6cbf3bc1"></a><!-- doxytag: member="ratio::type" ref="ga151756d11e2bb4503241dfcf6cbf3bc1" args="" --> typedef ratio< __n/__gcd2, <br class="typebreak"/> __safe_multiply< _R1::den/__gcd2, <br class="typebreak"/> _R2::den/__gcd >::value > <b>std::ratio_add::type</b> </ul> <h2><a name="func-members"></a> Functions</h2> <ul> <li><a class="anchor" id="ga039aedd1b59141f4c1c556ce5c166e01"></a><!-- doxytag: member="ratio::static_assert" ref="ga039aedd1b59141f4c1c556ce5c166e01" args="(_Num >=-__INTMAX_MAX__ &&_Den >=-__INTMAX_MAX__,"out of range")" --> <b>std::ratio::static_assert</b> (_Num >=-__INTMAX_MAX__ &&_Den >=-__INTMAX_MAX__,"out of range") </ul> <h2><a name="var-members"></a> Variables</h2> <ul> <li><a class="anchor" id="ga74b18a02929d0dfc37fc30b390390a8d"></a><!-- doxytag: member="ratio::den" ref="ga74b18a02929d0dfc37fc30b390390a8d" args="" --> static constexpr intmax_t <b>std::ratio::den</b> <li><a class="anchor" id="ga5a157e90249cb0f4be08cfad34f6b037"></a><!-- doxytag: member="ratio::den" ref="ga5a157e90249cb0f4be08cfad34f6b037" args="" --> static constexpr intmax_t <b>std::ratio_divide::den</b> <li><a class="anchor" id="ga410583f491b0c4994d902c2e02f5a740"></a><!-- doxytag: member="ratio::den" ref="ga410583f491b0c4994d902c2e02f5a740" args="" --> static constexpr intmax_t <b>std::ratio_add::den</b> <li><a class="anchor" id="ga0c88a5eba39b5a6598ef4e08b494a57f"></a><!-- doxytag: member="ratio::den" ref="ga0c88a5eba39b5a6598ef4e08b494a57f" args="" --> static constexpr intmax_t <b>std::ratio_multiply::den</b> <li><a class="anchor" id="ga6e91107145780020ccb40b4417a74eb5"></a><!-- doxytag: member="ratio::num" ref="ga6e91107145780020ccb40b4417a74eb5" args="" --> static constexpr intmax_t <b>std::ratio_add::num</b> <li><a class="anchor" id="ga789f5d091ec6558c00e83a858a85a50f"></a><!-- doxytag: member="ratio::num" ref="ga789f5d091ec6558c00e83a858a85a50f" args="" --> static constexpr intmax_t <b>std::ratio_multiply::num</b> <li><a class="anchor" id="gac2dc623161a14481407fa34d8c469e45"></a><!-- doxytag: member="ratio::num" ref="gac2dc623161a14481407fa34d8c469e45" args="" --> static constexpr intmax_t <b>std::ratio::num</b> <li><a class="anchor" id="ga236cdd12874e793afb2d26a6dd97eba7"></a><!-- doxytag: member="ratio::num" ref="ga236cdd12874e793afb2d26a6dd97eba7" args="" --> static constexpr intmax_t <b>std::ratio_divide::num</b> <li><a class="anchor" id="ga7269dee63c5b56a367a4c12f90a8c3b8"></a><!-- doxytag: member="ratio::value" ref="ga7269dee63c5b56a367a4c12f90a8c3b8" args="" --> static const intmax_t <b>std::__safe_add::value</b> <li><a class="anchor" id="gadbc0d08c7c45203c813a708c513ae6a0"></a><!-- doxytag: member="ratio::value" ref="gadbc0d08c7c45203c813a708c513ae6a0" args="" --> static const intmax_t <b>std::__safe_multiply::value</b> </ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>Compile time representation of finite rational numbers. </p> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="footer">Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li> </ul> </div> </body> </html>