⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bigrat.html

📁 perl教程
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<h2><a name="as_bin__"><code>as_bin()</code></a></h2>
<pre>
        <span class="variable">$x</span> <span class="operator">=</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'13'</span><span class="operator">);</span>
        <span class="keyword">print</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">as_bin</span><span class="operator">(),</span><span class="string">"\n"</span><span class="operator">;</span>                <span class="comment"># '0x1101'</span>
</pre>
<p>Returns the BigRat as binary string. Works only for integers.</p>
<p>
</p>
<h2><a name="bfac__"><code>bfac()</code></a></h2>
<pre>
        <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bfac</span><span class="operator">();</span>
</pre>
<p>Calculates the factorial of $x. For instance:</p>
<pre>
        <span class="keyword">print</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'3/1'</span><span class="operator">)-&gt;</span><span class="variable">bfac</span><span class="operator">(),</span><span class="string">"\n"</span><span class="operator">;</span>    <span class="comment"># 1*2*3</span>
        <span class="keyword">print</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'5/1'</span><span class="operator">)-&gt;</span><span class="variable">bfac</span><span class="operator">(),</span><span class="string">"\n"</span><span class="operator">;</span>    <span class="comment"># 1*2*3*4*5</span>
</pre>
<p>Works currently only for integers.</p>
<p>
</p>
<h2><a name="blog__"><code>blog()</code></a></h2>
<p>Is not yet implemented.</p>
<p>
</p>
<h2><a name="bround___round___bfround__"><code>bround()/round()/bfround()</code></a></h2>
<p>Are not yet implemented.</p>
<p>
</p>
<h2><a name="bmod__"><a href="#item_bmod"><code>bmod()</code></a></a></h2>
<pre>
        <span class="keyword">use</span> <span class="variable">Math::BigRat</span><span class="operator">;</span>
        <span class="keyword">my</span> <span class="variable">$x</span> <span class="operator">=</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'7/4'</span><span class="operator">);</span>
        <span class="keyword">my</span> <span class="variable">$y</span> <span class="operator">=</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="string">'4/3'</span><span class="operator">);</span>
        <span class="keyword">print</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bmod</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>
</pre>
<p>Set $x to the remainder of the division of $x by $y.</p>
<p>
</p>
<h2><a name="is_one__"><code>is_one()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is 1\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_one</span><span class="operator">();</span>
</pre>
<p>Return true if $x is exactly one, otherwise false.</p>
<p>
</p>
<h2><a name="is_zero__"><code>is_zero()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is 0\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_zero</span><span class="operator">();</span>
</pre>
<p>Return true if $x is exactly zero, otherwise false.</p>
<p>
</p>
<h2><a name="is_pos__"><code>is_pos()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is &gt;= 0\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_positive</span><span class="operator">();</span>
</pre>
<p>Return true if $x is positive (greater than or equal to zero), otherwise
false. Please note that '+inf' is also positive, while 'NaN' and '-inf' aren't.</p>
<p><code>is_positive()</code> is an alias for <code>is_pos()</code>.</p>
<p>
</p>
<h2><a name="is_neg__"><code>is_neg()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is &lt; 0\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_negative</span><span class="operator">();</span>
</pre>
<p>Return true if $x is negative (smaller than zero), otherwise false. Please
note that '-inf' is also negative, while 'NaN' and '+inf' aren't.</p>
<p><code>is_negative()</code> is an alias for <code>is_neg()</code>.</p>
<p>
</p>
<h2><a name="is_int__"><code>is_int()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is an integer\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_int</span><span class="operator">();</span>
</pre>
<p>Return true if $x has a denominator of 1 (e.g. no fraction parts), otherwise
false. Please note that '-inf', 'inf' and 'NaN' aren't integer.</p>
<p>
</p>
<h2><a name="is_odd__"><code>is_odd()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is odd\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_odd</span><span class="operator">();</span>
</pre>
<p>Return true if $x is odd, otherwise false.</p>
<p>
</p>
<h2><a name="is_even__"><code>is_even()</code></a></h2>
<pre>
        <span class="keyword">print</span> <span class="string">"$x is even\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_even</span><span class="operator">();</span>
</pre>
<p>Return true if $x is even, otherwise false.</p>
<p>
</p>
<h2><a name="bceil__"><code>bceil()</code></a></h2>
<pre>
        <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bceil</span><span class="operator">();</span>
</pre>
<p>Set $x to the next bigger integer value (e.g. truncate the number to integer
and then increment it by one).</p>
<p>
</p>
<h2><a name="bfloor__"><code>bfloor()</code></a></h2>
<pre>

        <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bfloor</span><span class="operator">();</span>
</pre>
<p>Truncate $x to an integer value.</p>
<p>
</p>
<h2><a name="bsqrt__"><code>bsqrt()</code></a></h2>
<pre>

        <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bsqrt</span><span class="operator">();</span>
</pre>
<p>Calculate the square root of $x.</p>
<p>
</p>
<h2><a name="config">config</a></h2>
<pre>
        <span class="keyword">use</span> <span class="variable">Data::Dumper</span><span class="operator">;</span>
</pre>
<pre>
        <span class="keyword">print</span> <span class="variable">Dumper</span> <span class="operator">(</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">config</span><span class="operator">()</span> <span class="operator">);</span>
        <span class="keyword">print</span> <span class="variable">Math::BigRat</span><span class="operator">-&gt;</span><span class="variable">config</span><span class="operator">()-&gt;</span><span class="operator">{</span><span class="string">lib</span><span class="operator">}</span><span class="operator">,</span><span class="string">"\n"</span><span class="operator">;</span>
</pre>
<p>Returns a hash containing the configuration, e.g. the version number, lib
loaded etc. The following hash keys are currently filled in with the
appropriate information.</p>
<pre>
        key             RO/RW   Description
                                Example
        ============================================================
        lib             RO      Name of the Math library
                                Math::BigInt::Calc
        lib_version     RO      Version of 'lib'
                                0.30
        class           RO      The class of config you just called
                                Math::BigRat
        version         RO      version number of the class you used
                                0.10
        upgrade         RW      To which class numbers are upgraded
                                undef
        downgrade       RW      To which class numbers are downgraded
                                undef
        precision       RW      Global precision
                                undef
        accuracy        RW      Global accuracy
                                undef
        round_mode      RW      Global round mode
                                even
        div_scale       RW      Fallback acccuracy for div
                                40
        trap_nan        RW      Trap creation of NaN (undef = no)
                                undef
        trap_inf        RW      Trap creation of +inf/-inf (undef = no)
                                undef</pre>
<p>By passing a reference to a hash you may set the configuration values. This
works only for values that a marked with a <code>RW</code> above, anything else is
read-only.</p>
<p>
</p>
<hr />
<h1><a name="bugs">BUGS</a></h1>
<p>Some things are not yet implemented, or only implemented half-way:</p>
<dl>
<dt><strong><a name="item_handling">inf handling (partial)</a></strong>

<dt><strong>NaN handling (partial)</strong>

<dt><strong><a name="item_rounding">rounding (not implemented except for bceil/bfloor)</a></strong>

<dt><strong><a name="item__x">$x ** $y where $y is not an integer</a></strong>

<dt><strong><a name="item_bmod">bmod(), blog(), <code>bmodinv()</code> and <code>bmodpow()</code> (partial)</a></strong>

</dl>
<p>
</p>
<hr />
<h1><a name="license">LICENSE</a></h1>
<p>This program is free software; you may redistribute it and/or modify it under
the same terms as Perl itself.</p>
<p>
</p>
<hr />
<h1><a name="see_also">SEE ALSO</a></h1>
<p><a href="../../lib/Math/BigFloat.html">the Math::BigFloat manpage</a> and <a href="../../Math/Big.html">the Math::Big manpage</a> as well as <a href="../../Math/BigInt/BitVect.html">the Math::BigInt::BitVect manpage</a>,
<a href="../../Math/BigInt/Pari.html">the Math::BigInt::Pari manpage</a> and  <a href="../../Math/BigInt/GMP.html">the Math::BigInt::GMP manpage</a>.</p>
<p>See <a href="http://search.cpan.org/search?dist=bignum">http://search.cpan.org/search</a> for a way to use
Math::BigRat.</p>
<p>The package at <a href="http://search.cpan.org/search?dist=Math%3A%3ABigRat">http://search.cpan.org/search</a>
may contain more documentation and examples as well as testcases.</p>
<p>
</p>
<hr />
<h1><a name="authors">AUTHORS</a></h1>
<p>(C) by Tels <a href="http://bloodgate.com/">http://bloodgate.com/</a> 2001 - 2005.</p>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -