forked from pola-rs/polars
/
index.html
84 lines (78 loc) · 16.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A collection of numeric types and traits for Rust."><meta name="keywords" content="rust, rustlang, rust-lang, num"><title>num - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><script src="../crates.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">☰</div><a href='../num/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate num</p><div class="block version"><p>Version 0.4.0</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all num's items</p></a><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class="location"></p><div id="sidebar-vars" data-name="num" data-ty="mod" data-relpath="../"></div></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" height="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" height="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Crate <a class="mod" href="">num</a></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span><a class="srclink" href="../src/num/lib.rs.html#11-108" title="goto source code">[src]</a></span></h1><div class="docblock"><p>A collection of numeric types and traits for Rust.</p>
<p>This includes new types for big integers, rationals, and complex numbers,
new traits for generic programming on numeric properties like <code>Integer</code>,
and generic range iterators.</p>
<h2 id="example" class="section-header"><a href="#example">Example</a></h2>
<p>This example uses the BigRational type and <a href="https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method">Newton’s method</a> to
approximate a square root to arbitrary precision:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">num</span>::<span class="ident">FromPrimitive</span>;
<span class="kw">use</span> <span class="ident">num</span>::<span class="ident">bigint</span>::<span class="ident">BigInt</span>;
<span class="kw">use</span> <span class="ident">num</span>::<span class="ident">rational</span>::{<span class="ident">Ratio</span>, <span class="ident">BigRational</span>};
<span class="kw">fn</span> <span class="ident">approx_sqrt</span>(<span class="ident">number</span>: <span class="ident">u64</span>, <span class="ident">iterations</span>: <span class="ident">usize</span>) <span class="op">-</span><span class="op">></span> <span class="ident">BigRational</span> {
<span class="kw">let</span> <span class="ident">start</span>: <span class="ident">Ratio</span><span class="op"><</span><span class="ident">BigInt</span><span class="op">></span> <span class="op">=</span> <span class="ident">Ratio</span>::<span class="ident">from_integer</span>(<span class="ident">FromPrimitive</span>::<span class="ident">from_u64</span>(<span class="ident">number</span>).<span class="ident">unwrap</span>());
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">approx</span> <span class="op">=</span> <span class="ident">start</span>.<span class="ident">clone</span>();
<span class="kw">for</span> <span class="kw">_</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">iterations</span> {
<span class="ident">approx</span> <span class="op">=</span> (<span class="kw-2">&</span><span class="ident">approx</span> <span class="op">+</span> (<span class="kw-2">&</span><span class="ident">start</span> <span class="op">/</span> <span class="kw-2">&</span><span class="ident">approx</span>)) <span class="op">/</span>
<span class="ident">Ratio</span>::<span class="ident">from_integer</span>(<span class="ident">FromPrimitive</span>::<span class="ident">from_u64</span>(<span class="number">2</span>).<span class="ident">unwrap</span>());
}
<span class="ident">approx</span>
}
<span class="kw">fn</span> <span class="ident">main</span>() {
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{}"</span>, <span class="ident">approx_sqrt</span>(<span class="number">10</span>, <span class="number">4</span>)); <span class="comment">// prints 4057691201/1283082416</span>
}
</pre></div>
<h2 id="compatibility" class="section-header"><a href="#compatibility">Compatibility</a></h2>
<p>The <code>num</code> crate is tested for rustc 1.31 and greater.</p>
</div><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
<table><tr class="module-item"><td><a class="mod" href="bigint/index.html" title="num::bigint mod">bigint</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="cast/index.html" title="num::cast mod">cast</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="complex/index.html" title="num::complex mod">complex</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="integer/index.html" title="num::integer mod">integer</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="iter/index.html" title="num::iter mod">iter</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="pow/index.html" title="num::pow mod">pow</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="rational/index.html" title="num::rational mod">rational</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="mod" href="traits/index.html" title="num::traits mod">traits</a></td><td class="docblock-short"></td></tr></table><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2>
<table><tr class="module-item"><td><a class="struct" href="struct.BigInt.html" title="num::BigInt struct">BigInt</a></td><td class="docblock-short"><p>A big signed integer type.</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.BigUint.html" title="num::BigUint struct">BigUint</a></td><td class="docblock-short"><p>A big unsigned integer type.</p>
</td></tr><tr class="module-item"><td><a class="struct" href="struct.Complex.html" title="num::Complex struct">Complex</a></td><td class="docblock-short"><p>A complex number in Cartesian form.</p>
</td></tr></table><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2>
<table><tr class="module-item"><td><a class="trait" href="trait.Bounded.html" title="num::Bounded trait">Bounded</a></td><td class="docblock-short"><p>Numbers which have upper and lower bounds</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.CheckedAdd.html" title="num::CheckedAdd trait">CheckedAdd</a></td><td class="docblock-short"><p>Performs addition that returns <code>None</code> instead of wrapping around on
overflow.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.CheckedDiv.html" title="num::CheckedDiv trait">CheckedDiv</a></td><td class="docblock-short"><p>Performs division that returns <code>None</code> instead of panicking on division by zero and instead of
wrapping around on underflow and overflow.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.CheckedMul.html" title="num::CheckedMul trait">CheckedMul</a></td><td class="docblock-short"><p>Performs multiplication that returns <code>None</code> instead of wrapping around on underflow or
overflow.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.CheckedSub.html" title="num::CheckedSub trait">CheckedSub</a></td><td class="docblock-short"><p>Performs subtraction that returns <code>None</code> instead of wrapping around on underflow.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Float.html" title="num::Float trait">Float</a></td><td class="docblock-short"><p>Generic trait for floating point numbers</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.FromPrimitive.html" title="num::FromPrimitive trait">FromPrimitive</a></td><td class="docblock-short"><p>A generic trait for converting a number to a value.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Integer.html" title="num::Integer trait">Integer</a></td><td class="docblock-short"></td></tr><tr class="module-item"><td><a class="trait" href="trait.Num.html" title="num::Num trait">Num</a></td><td class="docblock-short"><p>The base trait for numeric types, covering <code>0</code> and <code>1</code> values,
comparisons, basic numeric operations, and string conversion.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.NumCast.html" title="num::NumCast trait">NumCast</a></td><td class="docblock-short"><p>An interface for casting between machine scalars.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.One.html" title="num::One trait">One</a></td><td class="docblock-short"><p>Defines a multiplicative identity element for <code>Self</code>.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.PrimInt.html" title="num::PrimInt trait">PrimInt</a></td><td class="docblock-short"><p>Generic trait for primitive integers.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Saturating.html" title="num::Saturating trait">Saturating</a></td><td class="docblock-short"><p>Saturating math operations. Deprecated, use <code>SaturatingAdd</code>, <code>SaturatingSub</code> and
<code>SaturatingMul</code> instead.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Signed.html" title="num::Signed trait">Signed</a></td><td class="docblock-short"><p>Useful functions for signed numbers (i.e. numbers that can be negative).</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.ToPrimitive.html" title="num::ToPrimitive trait">ToPrimitive</a></td><td class="docblock-short"><p>A generic trait for converting a value to a number.</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Unsigned.html" title="num::Unsigned trait">Unsigned</a></td><td class="docblock-short"><p>A trait for values which cannot be negative</p>
</td></tr><tr class="module-item"><td><a class="trait" href="trait.Zero.html" title="num::Zero trait">Zero</a></td><td class="docblock-short"><p>Defines an additive identity element for <code>Self</code>.</p>
</td></tr></table><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2>
<table><tr class="module-item"><td><a class="fn" href="fn.abs.html" title="num::abs fn">abs</a></td><td class="docblock-short"><p>Computes the absolute value.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.abs_sub.html" title="num::abs_sub fn">abs_sub</a></td><td class="docblock-short"><p>The positive difference of two numbers.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.cast.html" title="num::cast fn">cast</a></td><td class="docblock-short"><p>Cast from one machine scalar to another.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.checked_pow.html" title="num::checked_pow fn">checked_pow</a></td><td class="docblock-short"><p>Raises a value to the power of exp, returning <code>None</code> if an overflow occurred.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.clamp.html" title="num::clamp fn">clamp</a></td><td class="docblock-short"><p>A value bounded by a minimum and a maximum</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.one.html" title="num::one fn">one</a></td><td class="docblock-short"><p>Returns the multiplicative identity, <code>1</code>.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.pow.html" title="num::pow fn">pow</a></td><td class="docblock-short"><p>Raises a value to the power of exp, using exponentiation by squaring.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.range.html" title="num::range fn">range</a></td><td class="docblock-short"><p>Returns an iterator over the given range [start, stop) (that is, starting
at start (inclusive), and ending at stop (exclusive)).</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.range_inclusive.html" title="num::range_inclusive fn">range_inclusive</a></td><td class="docblock-short"><p>Return an iterator over the range [start, stop]</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.range_step.html" title="num::range_step fn">range_step</a></td><td class="docblock-short"><p>Return an iterator over the range [start, stop) by <code>step</code>. It handles overflow by stopping.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.range_step_inclusive.html" title="num::range_step_inclusive fn">range_step_inclusive</a></td><td class="docblock-short"><p>Return an iterator over the range [start, stop] by <code>step</code>. It handles overflow by stopping.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.signum.html" title="num::signum fn">signum</a></td><td class="docblock-short"><p>Returns the sign of the number.</p>
</td></tr><tr class="module-item"><td><a class="fn" href="fn.zero.html" title="num::zero fn">zero</a></td><td class="docblock-short"><p>Returns the additive identity, <code>0</code>.</p>
</td></tr></table><h2 id="types" class="section-header"><a href="#types">Type Definitions</a></h2>
<table><tr class="module-item"><td><a class="type" href="type.BigRational.html" title="num::BigRational type">BigRational</a></td><td class="docblock-short"><p>Alias for arbitrary precision rationals.</p>
</td></tr><tr class="module-item"><td><a class="type" href="type.Rational.html" title="num::Rational type">Rational</a></td><td class="docblock-short"><span class="stab deprecated" title="">Deprecated</span><p>Alias for a <code>Ratio</code> of machine-sized integers.</p>
</td></tr><tr class="module-item"><td><a class="type" href="type.Rational32.html" title="num::Rational32 type">Rational32</a></td><td class="docblock-short"><p>Alias for a <code>Ratio</code> of 32-bit-sized integers.</p>
</td></tr><tr class="module-item"><td><a class="type" href="type.Rational64.html" title="num::Rational64 type">Rational64</a></td><td class="docblock-short"><p>Alias for a <code>Ratio</code> of 64-bit-sized integers.</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../" data-current-crate="num" data-search-js="../search-index.js"></div>
<script src="../main.js"></script></body></html>