#math #function #useful #crypto

bin+lib libnum

数学和加密高效开发的函数

3 个版本

0.1.2 2023年6月26日
0.1.1 2023年6月2日
0.1.0 2023年5月29日

#1284开发工具

每月下载量 29

MIT 许可协议

31KB
505

用于高效开发和计算大数的特性和函数

Crates.io Rust license

示例

use libnum::Numeric;
fn main() {
    // Computing large number of addition, subtraction, multiplication, and division
    let a = "1515454551515151411651651515151665959595956262626265655555599999999999555555555552222222222666666666666663333".to_string();
    let b = "9898989898989898989898989898978787979979797979797979797979797979".to_string();
    println!("{}", a.add(b.clone()).unwrap());

除法

   let c = "15454545151513193895151.4215".to_string();
   let d = "1545151514151515.313".to_string();
   println!("{}", c.div(d.clone()).unwrap());

乘法

   let c = "15454545151513193895151.4215".to_string();
   let d = "1545151514151515.313".to_string();
   println!("{}", c.mul(d.clone()).unwrap());

减法

   let c = "15454545151513193895151.4215".to_string();
   let d = "1545151514151515.313".to_string();
   println!("{}", c.sub(d.clone()).unwrap());

加法

   let c = "15454545151513193895151.4215".to_string();
   let d = "1545151514151515.313".to_string();
   println!("{}", c.add(d.clone()).unwrap());

异或操作

   let c = "15454545151513193895151".to_string();
   let d = "15".to_string();
   println!("{}", c.xor_operation(d.clone()).unwrap());

或操作

   let c = "15454545151513193895151".to_string();
   let d = "15".to_string();
   println!("{}", c.or_operation(d.clone()).unwrap());

与操作

   let c = "15454545151513193895151".to_string();
   let d = "15".to_string();
   println!("{}", c.and_operation(d.clone()).unwrap());

左移操作

   let c = "15454545151513193895151".to_string();
   let d = 15;
   println!("{}", c.right_shift(d).unwrap());

左移操作

   let c = "15454545151513193895151".to_string();
   let d = 15;
   println!("{}", c.left_shift(d).unwrap());

与操作

   let c = "15454545151513193895151.4215".to_string();
   let d = "15.313".to_string();
   println!("{}", c.mod_operation(d.clone()).unwrap());

对数

   let c = "15454545151513193895151.4215".to_string();
   let d = "15.313".to_string();
   println!("{}", c.log(d.clone()).unwrap());

反正切

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.atan().unwrap());

反余弦

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.acos().unwrap());

反正切

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.asin().unwrap());

正切

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.tan().unwrap());

余弦

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.cos().unwrap());

正弦

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.sin().unwrap());

以10为底的对数

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.log10().unwrap());

以2为底的对数

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.log2().unwrap());

指数

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.exp().unwrap());

平方根

   let c = "15454545151513193895151.4215".to_string();
   println!("{}", c.sqrt().unwrap());

   let c = "15454545151513193895151.4215".to_string();
   let d = "1545151514151515.313".to_string();
   println!("{}", c.pow(d.clone()).unwrap());

依赖项

~6MB
~200K SLoC