File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
10
11
+ //! Simple numerics.
12
+ //!
13
+ //! This crate contains arbitrary-sized integer, rational, and complex types.
14
+ //!
15
+ //! ## Example
16
+ //!
17
+ //! This example uses the BigRational type and [Newton's method][newt] to
18
+ //! approximate a square root to arbitrary precision:
19
+ //!
20
+ //! ```
21
+ //! extern crate num;
22
+ //!
23
+ //! use num::bigint::BigInt;
24
+ //! use num::rational::{Ratio, BigRational}:
25
+ //!
26
+ //! fn approx_sqrt(number: u64, iterations: uint) -> BigRational {
27
+ //! let start: Ratio<BigInt> = Ratio::from_integer(FromPrimitive::from_u64(number).unwrap());
28
+ //! let mut approx = start.clone();
29
+ //!
30
+ //! for _ in range(0, iterations) {
31
+ //! approx = (approx + (start / approx)) /
32
+ //! Ratio::from_integer(FromPrimitive::from_u64(2).unwrap());
33
+ //! }
34
+ //!
35
+ //! approx
36
+ //! }
37
+ //!
38
+ //! fn main() {
39
+ //! println!("{}", approx_sqrt(10, 4)); // prints 4057691201/1283082416
40
+ //! }
41
+ //! ```
42
+ //!
43
+ //! [newt]: https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method
44
+
11
45
#![ feature( macro_rules) ]
12
46
13
47
#![ crate_id = "num#0.11.0-pre" ]
You can’t perform that action at this time.
0 commit comments