This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/gecode/dev/extractor/xml/rounded__arith_8hpp.xml
Vitor Santos Costa a8eda03305 4.2.1 support
2014-01-22 09:41:47 +00:00

382 lines
42 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.6">
<compounddef id="rounded__arith_8hpp" kind="file">
<compoundname>rounded_arith.hpp</compoundname>
<includes refid="third-party_2boost_2numeric_2interval_2rounding_8hpp" local="no">gecode/third-party/boost/numeric/interval/rounding.hpp</includes>
<includes refid="bugs_8hpp" local="no">gecode/third-party/boost/numeric/interval/detail/bugs.hpp</includes>
<includes refid="cmath_8hpp" local="no">gecode/third-party/boost/config/no_tr1/cmath.hpp</includes>
<includedby refid="division_8hpp" local="no">/usr/include/gecode/third-party/boost/numeric/interval/detail/division.hpp</includedby>
<includedby refid="hw__rounding_8hpp" local="no">/usr/include/gecode/third-party/boost/numeric/interval/hw_rounding.hpp</includedby>
<includedby refid="interval_8hpp" local="no">/usr/include/gecode/third-party/boost/numeric/interval.hpp</includedby>
<incdepgraph>
<node id="34767">
<label>gecode/third-party/boost/config/suffix.hpp</label>
<link refid="suffix_8hpp_source"/>
<childnode refid="34768" relation="include">
</childnode>
</node>
<node id="34769">
<label>gecode/third-party/boost/config/no_tr1/cmath.hpp</label>
<link refid="cmath_8hpp_source"/>
<childnode refid="34770" relation="include">
</childnode>
</node>
<node id="34762">
<label>gecode/third-party/boost/numeric/interval/rounding.hpp</label>
<link refid="third-party_2boost_2numeric_2interval_2rounding_8hpp_source"/>
</node>
<node id="34770">
<label>cmath</label>
</node>
<node id="34763">
<label>gecode/third-party/boost/numeric/interval/detail/bugs.hpp</label>
<link refid="bugs_8hpp_source"/>
<childnode refid="34764" relation="include">
</childnode>
</node>
<node id="34768">
<label>limits.h</label>
</node>
<node id="34766">
<label>gecode/third-party/boost/config/select_platform_config.hpp</label>
<link refid="select__platform__config_8hpp_source"/>
</node>
<node id="34765">
<label>gecode/third-party/boost/config/select_compiler_config.hpp</label>
<link refid="select__compiler__config_8hpp_source"/>
</node>
<node id="34764">
<label>gecode/third-party/boost/config.hpp</label>
<link refid="third-party_2boost_2config_8hpp_source"/>
<childnode refid="34765" relation="include">
</childnode>
<childnode refid="34766" relation="include">
</childnode>
<childnode refid="34767" relation="include">
</childnode>
</node>
<node id="34761">
<label>/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp</label>
<link refid="rounded_arith.hpp"/>
<childnode refid="34762" relation="include">
</childnode>
<childnode refid="34763" relation="include">
</childnode>
<childnode refid="34769" relation="include">
</childnode>
</node>
</incdepgraph>
<invincdepgraph>
<node id="34777">
<label>/usr/include/gecode/float.hh</label>
<link refid="float_8hh_source"/>
<childnode refid="34778" relation="include">
</childnode>
<childnode refid="34779" relation="include">
</childnode>
<childnode refid="34780" relation="include">
</childnode>
<childnode refid="34781" relation="include">
</childnode>
</node>
<node id="34774">
<label>/usr/include/gecode/third-party/boost/numeric/interval/arith2.hpp</label>
<link refid="arith2_8hpp_source"/>
<childnode refid="34775" relation="include">
</childnode>
<childnode refid="34776" relation="include">
</childnode>
</node>
<node id="34776">
<label>/usr/include/gecode/third-party/boost/numeric/interval.hpp</label>
<link refid="interval_8hpp_source"/>
<childnode refid="34777" relation="include">
</childnode>
</node>
<node id="34781">
<label>/usr/include/gecode/float/rel.hh</label>
<link refid="float_2rel_8hh_source"/>
<childnode refid="34778" relation="include">
</childnode>
</node>
<node id="34778">
<label>/usr/include/gecode/float/arithmetic.hh</label>
<link refid="float_2arithmetic_8hh_source"/>
</node>
<node id="34773">
<label>/usr/include/gecode/third-party/boost/numeric/interval/arith.hpp</label>
<link refid="arith_8hpp_source"/>
<childnode refid="34774" relation="include">
</childnode>
<childnode refid="34775" relation="include">
</childnode>
<childnode refid="34776" relation="include">
</childnode>
</node>
<node id="34782">
<label>/usr/include/gecode/third-party/boost/numeric/interval/hw_rounding.hpp</label>
<link refid="hw__rounding_8hpp_source"/>
<childnode refid="34776" relation="include">
</childnode>
</node>
<node id="34780">
<label>/usr/include/gecode/float/linear.hh</label>
<link refid="float_2linear_8hh_source"/>
</node>
<node id="34779">
<label>/usr/include/gecode/float/branch.hh</label>
<link refid="float_2branch_8hh_source"/>
</node>
<node id="34775">
<label>/usr/include/gecode/third-party/boost/numeric/interval/transc.hpp</label>
<link refid="transc_8hpp_source"/>
<childnode refid="34776" relation="include">
</childnode>
</node>
<node id="34772">
<label>/usr/include/gecode/third-party/boost/numeric/interval/detail/division.hpp</label>
<link refid="division_8hpp_source"/>
<childnode refid="34773" relation="include">
</childnode>
<childnode refid="34774" relation="include">
</childnode>
</node>
<node id="34771">
<label>/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp</label>
<link refid="rounded_arith.hpp"/>
<childnode refid="34772" relation="include">
</childnode>
<childnode refid="34782" relation="include">
</childnode>
<childnode refid="34776" relation="include">
</childnode>
</node>
</invincdepgraph>
<innerclass refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__exact" prot="public">boost::numeric::interval_lib::rounded_arith_exact</innerclass>
<innerclass refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__std" prot="public">boost::numeric::interval_lib::rounded_arith_std</innerclass>
<innerclass refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__opp" prot="public">boost::numeric::interval_lib::rounded_arith_opp</innerclass>
<innernamespace refid="namespaceboost">boost</innernamespace>
<innernamespace refid="namespaceboost_1_1numeric">boost::numeric</innernamespace>
<innernamespace refid="namespaceboost_1_1numeric_1_1interval__lib">boost::numeric::interval_lib</innernamespace>
<sectiondef kind="define">
<memberdef kind="define" id="rounded__arith_8hpp_1af3c714fd7f90d5b2ac4baa55057fe7e7" prot="public" static="no">
<name>BOOST_DN</name>
<param><defname>EXPR</defname></param>
<initializer>this-&gt;downward(); return this-&gt;force_rounding(EXPR)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="52" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="81" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1adc235fecb19782737cf9c9843f87f04b" prot="public" static="no">
<name>BOOST_NR</name>
<param><defname>EXPR</defname></param>
<initializer>this-&gt;to_nearest(); return this-&gt;force_rounding(EXPR)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="53" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="86" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1ad20aa0a16267dc4a937aef92c5cf73da" prot="public" static="no">
<name>BOOST_UP</name>
<param><defname>EXPR</defname></param>
<initializer>this-&gt;upward(); return this-&gt;force_rounding(EXPR)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="54" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="91" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1af3c714fd7f90d5b2ac4baa55057fe7e7" prot="public" static="no">
<name>BOOST_DN</name>
<param><defname>EXPR</defname></param>
<initializer>this-&gt;downward(); \
T r = this-&gt;force_rounding(EXPR); \
this-&gt;upward(); \
return r</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="81" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="81" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1adc235fecb19782737cf9c9843f87f04b" prot="public" static="no">
<name>BOOST_NR</name>
<param><defname>EXPR</defname></param>
<initializer>this-&gt;to_nearest(); \
T r = this-&gt;force_rounding(EXPR); \
this-&gt;upward(); \
return r</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="86" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="86" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1ad20aa0a16267dc4a937aef92c5cf73da" prot="public" static="no">
<name>BOOST_UP</name>
<param><defname>EXPR</defname></param>
<initializer>return this-&gt;force_rounding(EXPR)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="91" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="91" bodyend="-1"/>
</memberdef>
<memberdef kind="define" id="rounded__arith_8hpp_1a517ce26297965b7a768cfcb13b1d3ce2" prot="public" static="no">
<name>BOOST_UP_NEG</name>
<param><defname>EXPR</defname></param>
<initializer>return -this-&gt;force_rounding(EXPR)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" line="92" column="10" bodyfile="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp" bodystart="92" bodyend="-1"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="comment">/*<sp/>Boost<sp/>interval/rounded_arith.hpp<sp/>template<sp/>implementation<sp/>file</highlight></codeline>
<codeline lineno="2"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="3"><highlight class="comment"><sp/>*<sp/>Copyright<sp/>2002-2003<sp/>Hervé<sp/>Brönnimann,<sp/>Guillaume<sp/>Melquiond,<sp/>Sylvain<sp/>Pion</highlight></codeline>
<codeline lineno="4"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/>Distributed<sp/>under<sp/>the<sp/>Boost<sp/>Software<sp/>License,<sp/>Version<sp/>1.0.</highlight></codeline>
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/>(See<sp/>accompanying<sp/>file<sp/>LICENSE_1_0.txt<sp/>or</highlight></codeline>
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/>copy<sp/>at<sp/>http://www.boost.org/LICENSE_1_0.txt)</highlight></codeline>
<codeline lineno="8"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>BOOST_NUMERIC_INTERVAL_ROUNDED_ARITH_HPP</highlight></codeline>
<codeline lineno="11"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define<sp/>BOOST_NUMERIC_INTERVAL_ROUNDED_ARITH_HPP</highlight></codeline>
<codeline lineno="12"><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;gecode/third-party/boost/numeric/interval/rounding.hpp&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;gecode/third-party/boost/numeric/interval/detail/bugs.hpp&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;gecode/third-party/boost/config/no_tr1/cmath.hpp&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="16"><highlight class="normal"></highlight></codeline>
<codeline lineno="17"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">boost<sp/>{</highlight></codeline>
<codeline lineno="18"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">numeric<sp/>{</highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">interval_lib<sp/>{</highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
<codeline lineno="22"><highlight class="comment"><sp/>*<sp/>Three<sp/>classes<sp/>of<sp/>rounding:<sp/>exact,<sp/>std,<sp/>opp</highlight></codeline>
<codeline lineno="23"><highlight class="comment"><sp/>*<sp/>See<sp/>documentation<sp/>for<sp/>details.</highlight></codeline>
<codeline lineno="24"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight></codeline>
<codeline lineno="26"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>Rounding&gt;</highlight></codeline>
<codeline lineno="27" refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__exact" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__exact" kindref="compound">rounded_arith_exact</ref>:<sp/>Rounding<sp/>{</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>init()<sp/>{<sp/>}</highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_down(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>v;<sp/>}</highlight></codeline>
<codeline lineno="30"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_up<sp/><sp/>(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>v;<sp/>}</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/>T<sp/>add_down<sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>+<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="32"><highlight class="normal"><sp/><sp/>T<sp/>add_up<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>+<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/>T<sp/>sub_down<sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>-<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="34"><highlight class="normal"><sp/><sp/>T<sp/>sub_up<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>-<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/>T<sp/>mul_down<sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>*<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/>T<sp/>mul_up<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>*<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/>T<sp/>div_down<sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>/<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/>T<sp/>div_up<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x<sp/>/<sp/>y;<sp/>}</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/>T<sp/>median<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(x<sp/>+<sp/>y)<sp/>/<sp/>2;<sp/>}</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x);<sp/>}</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x);<sp/>}</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/>T<sp/>int_down<sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="45"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(floor);<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>floor(x);<sp/>}</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/>T<sp/>int_up<sp/><sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(ceil);<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ceil(x);<sp/>}</highlight></codeline>
<codeline lineno="48"><highlight class="normal">};</highlight></codeline>
<codeline lineno="49"><highlight class="normal"></highlight></codeline>
<codeline lineno="50"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>Rounding&gt;</highlight></codeline>
<codeline lineno="51" refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__std" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__std" kindref="compound">rounded_arith_std</ref>:<sp/>Rounding<sp/>{</highlight></codeline>
<codeline lineno="52"><highlight class="normal"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_DN(EXPR)<sp/>this-&gt;downward();<sp/><sp/><sp/>return<sp/>this-&gt;force_rounding(EXPR)</highlight></codeline>
<codeline lineno="53"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_NR(EXPR)<sp/>this-&gt;to_nearest();<sp/>return<sp/>this-&gt;force_rounding(EXPR)</highlight></codeline>
<codeline lineno="54"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_UP(EXPR)<sp/>this-&gt;upward();<sp/><sp/><sp/><sp/><sp/>return<sp/>this-&gt;force_rounding(EXPR)</highlight></codeline>
<codeline lineno="55"><highlight class="preprocessor"></highlight><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>init()<sp/>{<sp/>}</highlight></codeline>
<codeline lineno="56"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_down(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/>BOOST_DN(v);<sp/>}</highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_up<sp/><sp/>(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/>BOOST_UP(v);<sp/>}</highlight></codeline>
<codeline lineno="58"><highlight class="normal"><sp/><sp/>T<sp/>add_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_DN(x<sp/>+<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="59"><highlight class="normal"><sp/><sp/>T<sp/>sub_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_DN(x<sp/>-<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="60"><highlight class="normal"><sp/><sp/>T<sp/>mul_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_DN(x<sp/>*<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/>T<sp/>div_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_DN(x<sp/>/<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="62"><highlight class="normal"><sp/><sp/>T<sp/>add_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>+<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="63"><highlight class="normal"><sp/><sp/>T<sp/>sub_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>-<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="64"><highlight class="normal"><sp/><sp/>T<sp/>mul_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>*<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/>T<sp/>div_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>/<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/>T<sp/>median(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_NR((x<sp/>+<sp/>y)<sp/>/<sp/>2);<sp/>}</highlight></codeline>
<codeline lineno="67"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/>BOOST_DN(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x));<sp/>}</highlight></codeline>
<codeline lineno="69"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/>BOOST_UP(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x));<sp/>}</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/>T<sp/>int_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)<sp/>{<sp/>this-&gt;downward();<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;to_int(x);<sp/>}</highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/>T<sp/>int_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)<sp/>{<sp/>this-&gt;upward();<sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;to_int(x);<sp/>}</highlight></codeline>
<codeline lineno="73"><highlight class="normal"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_DN</highlight></codeline>
<codeline lineno="74"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_NR</highlight></codeline>
<codeline lineno="75"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_UP</highlight></codeline>
<codeline lineno="76"><highlight class="preprocessor"></highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="77"><highlight class="normal"></highlight></codeline>
<codeline lineno="78"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>Rounding&gt;</highlight></codeline>
<codeline lineno="79" refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__opp" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structboost_1_1numeric_1_1interval__lib_1_1rounded__arith__opp" kindref="compound">rounded_arith_opp</ref>:<sp/>Rounding<sp/>{</highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/>init()<sp/>{<sp/>this-&gt;upward();<sp/>}</highlight></codeline>
<codeline lineno="81"><highlight class="normal"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_DN(EXPR)<sp/>\</highlight></codeline>
<codeline lineno="82"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>this-&gt;downward();<sp/>\</highlight></codeline>
<codeline lineno="83"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>T<sp/>r<sp/>=<sp/>this-&gt;force_rounding(EXPR);<sp/>\</highlight></codeline>
<codeline lineno="84"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>this-&gt;upward();<sp/>\</highlight></codeline>
<codeline lineno="85"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>return<sp/>r</highlight></codeline>
<codeline lineno="86"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_NR(EXPR)<sp/>\</highlight></codeline>
<codeline lineno="87"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>this-&gt;to_nearest();<sp/>\</highlight></codeline>
<codeline lineno="88"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>T<sp/>r<sp/>=<sp/>this-&gt;force_rounding(EXPR);<sp/>\</highlight></codeline>
<codeline lineno="89"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>this-&gt;upward();<sp/>\</highlight></codeline>
<codeline lineno="90"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>return<sp/>r</highlight></codeline>
<codeline lineno="91"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_UP(EXPR)<sp/>return<sp/>this-&gt;force_rounding(EXPR)</highlight></codeline>
<codeline lineno="92"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>define<sp/>BOOST_UP_NEG(EXPR)<sp/>return<sp/>-this-&gt;force_rounding(EXPR)</highlight></codeline>
<codeline lineno="93"><highlight class="preprocessor"></highlight><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_down(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/>BOOST_UP_NEG(-v);<sp/>}</highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>U&gt;<sp/>T<sp/>conv_up<sp/><sp/>(U<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;v)<sp/>{<sp/>BOOST_UP(v);<sp/>}</highlight></codeline>
<codeline lineno="95"><highlight class="normal"><sp/><sp/>T<sp/>add_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP_NEG((-x)<sp/>-<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="96"><highlight class="normal"><sp/><sp/>T<sp/>sub_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP_NEG(y<sp/>-<sp/>x);<sp/>}</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/>T<sp/>mul_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP_NEG(x<sp/>*<sp/>(-y));<sp/>}</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/>T<sp/>div_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP_NEG(x<sp/>/<sp/>(-y));<sp/>}</highlight></codeline>
<codeline lineno="99"><highlight class="normal"><sp/><sp/>T<sp/>add_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>+<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="100"><highlight class="normal"><sp/><sp/>T<sp/>sub_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>-<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/>T<sp/>mul_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>*<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="102"><highlight class="normal"><sp/><sp/>T<sp/>div_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_UP(x<sp/>/<sp/>y);<sp/>}</highlight></codeline>
<codeline lineno="103"><highlight class="normal"><sp/><sp/>T<sp/>median<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>y)<sp/>{<sp/>BOOST_NR((x<sp/>+<sp/>y)<sp/>/<sp/>2);<sp/>}</highlight></codeline>
<codeline lineno="104"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/>BOOST_DN(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x));<sp/>}</highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/>T<sp/>sqrt_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)</highlight></codeline>
<codeline lineno="107"><highlight class="normal"><sp/><sp/>{<sp/>BOOST_NUMERIC_INTERVAL_using_math(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>);<sp/>BOOST_UP(<ref refid="group__TaskModelFloatArith_1ga64708360c9e893d05c85e2b646c917df" kindref="member">sqrt</ref>(x));<sp/>}</highlight></codeline>
<codeline lineno="108"><highlight class="normal"><sp/><sp/>T<sp/>int_down(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-this-&gt;to_int(-x);<sp/>}</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/>T<sp/>int_up<sp/><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>x)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;to_int(x);<sp/>}</highlight></codeline>
<codeline lineno="110"><highlight class="normal"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_DN</highlight></codeline>
<codeline lineno="111"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_NR</highlight></codeline>
<codeline lineno="112"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_UP</highlight></codeline>
<codeline lineno="113"><highlight class="preprocessor"></highlight><highlight class="preprocessor">#<sp/>undef<sp/>BOOST_UP_NEG</highlight></codeline>
<codeline lineno="114"><highlight class="preprocessor"></highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="115"><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>interval_lib</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="117"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>numeric</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="118"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>boost</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="119"><highlight class="normal"></highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/>//<sp/>BOOST_NUMERIC_INTERVAL_ROUNDED_ARITH_HPP</highlight></codeline>
</programlisting>
<location file="/usr/include/gecode/third-party/boost/numeric/interval/rounded_arith.hpp"/>
</compounddef>
</doxygen>