Rust numeric library with R Syntax.
Corresponds with 0.2.4
.
rust
extern crate peroxide;
use peroxide::*;
```R
a = matrix(1:4, 2, 2, True) ```
rust
// Peroxide
let a = Matrix::new(vec![1,2,3,4], 2, 2, Row); // Rust like
let a = matrix(vec![1,2,3,4], 2, 2, Row); // R like
```R
a = matrix(1:4, 2, 2, True) print(a)
```
rust
// Peroxide
let a = matrix(vec![1,2,3,4], 2, 2, Row);
println!("{}", a);
// c[0] c[1]
// r[0] 1 2
// r[1] 3 4
clone
because Rust std::ops
consume value. ```R
a = matrix(1:4, 2, 2, T) b = matrix(1:4, 2, 2, F) print(a + b) print(a - b) print(a * b) print(a %*% b) ```
rust
// Peroxide
let a = matrix(vec![1,2,3,4], 2, 2, Row);
let b = matrix(vec![1,2,3,4], 2, 2, Col);
println!("{}", a.clone() + b.clone());
println!("{}", a.clone() - b.clone());
println!("{}", a.clone() * b.clone()); // Element-wise multiplication
println!("{}", a % b); // Matrix multiplication
// Consume -> You can't use a,b anymore.
R
a = matrix(1:4, 2, 2, T)
print(a[,1])
print(a[,2])
print(a[1,])
print(a[2,])
rust
//Peroxide
let a = matrix(vec![1,2,3,4], 2, 2, Row);
println!("{}", a.col(0));
println!("{}", a.col(1));
println!("{}", a.row(0));
println!("{}", a.row(1));
```rust // Peroxide let a = matrix(vec![1,2,3,4], 2, 2, Row); println!("{}", a.fmap(|x| x + 1.0)); println!("{}", a.fmap(|x| x - 1.0)); println!("{}", a.fmap(|x| x * 2.0));
// Results // // c[0] c[1] // r[0] 2 3 // r[1] 4 5 // // c[0] c[1] // r[0] 0 1 // r[1] 2 3 // // c[0] c[1] // r[0] 2 4 // r[1] 6 8 ```