#complex-numbers #complex #numeric

num-irrational

num-irrational 基于库 num 并扩展了它,以支持多种无理数。

10个不稳定版本 (3个破坏性更改)

0.3.0 2022年4月15日
0.3.0-alpha2022年4月11日
0.2.0 2022年4月8日
0.2.0-alpha2022年3月3日
0.0.3 2022年1月18日

#1827 in 数学

每月38次下载
2 crate 中使用

Apache-2.0

175KB
4K SLoC

num-irrational

此crate提供以下类别内无理数的表示:

  • 数学常数(pie等)
  • 二次数
    • 二次无理数(又称二次根式)
    • 二次整数
    • 高斯整数/艾森施坦整数
  • 连分数
    • 简单(又称常规)连分数
    • 一般连分数
    • Hurwitz连分数

如你所见,对无理数的支持不仅限于实数域,它还支持复数域中的几个数值类型(通过启用complex特性)。它基于库 num 创建。


lib.rs:

此crate提供以下类别内无理数的表示:

它基于库 num 创建。

示例

use num_irrational::{FromSqrt, QuadraticSurd};
let sq2 = QuadraticSurd::from_sqrt(2i32).unwrap();
println!("Square root of 2: {}", sq2); // √2

use num_irrational::Computable;
let sq2_approx = sq2.approximated(&100).value();
println!("Rational approximation with denominator under 100: {}", sq2_approx); // 99/70

use core::convert::TryFrom;
use num_irrational::ContinuedFraction;
// let sq2_fraction = ContinuedFraction::from(sq2); // only if feature `complex` is disabled
let sq2_fraction = ContinuedFraction::try_from(sq2).unwrap();
println!("Continued Fraction: {}", sq2_fraction); // [1; (2)]

可选特性

  • complex:启用对[QuadraticSurd]的负平方根基数支持。请注意,此标志可能会更改[QuadraticSurd]上运算符的行为。
  • num-complex:启用将[QuadraticSurd]转换为num_complex::Complex。您可能需要同时启用complex特性。
  • num-bigint:启用使用大整数作为内部表示。

依赖关系

~620KB
~14K SLoC