📄 bigrat.html
字号:
<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">-></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">-></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">-></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">-></span><span class="variable">new</span><span class="operator">(</span><span class="string">'3/1'</span><span class="operator">)-></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">-></span><span class="variable">new</span><span class="operator">(</span><span class="string">'5/1'</span><span class="operator">)-></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">-></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">-></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">-></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">-></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">-></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 >= 0\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-></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 < 0\n"</span> <span class="keyword">if</span> <span class="variable">$x</span><span class="operator">-></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">-></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">-></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">-></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">-></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">-></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">-></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">-></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">-></span><span class="variable">config</span><span class="operator">()-></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 + -