Crates.io | math-rs |
lib.rs | math-rs |
version | 0.1.5 |
source | src |
created_at | 2023-05-15 06:35:55.314218 |
updated_at | 2023-05-23 10:22:23.591424 |
description | A basic mathematical engine |
homepage | https://math-rs.rs |
repository | https://github.com/VikSa666/mathrs |
max_upload_size | |
id | 864760 |
size | 49,378 |
A mathematical library
For now, only matrices calculator is implemented.
Every matrix can be created using a macro that will parse a string represenging the matrix in the following way: {{a11, a12, a13, ...}. {a21, a22, a23, ...}, ...}
. As each matrix can contain different type of numbers, you have to specify which type of number will you get: matrix_<number_type>!("{{a11, a12, ...}, {a21, a22, ...}, ...}")
.
The call
let matrix = matrix_f32!("{{1.1, 2.2}, {2.1, 3.2}}");
println!("{matrix}")
will print
+1.1000000 +2.2000000
+2.1000000 +3.2000000
const performSum = async () => {
await init();
result.value = RMatrixF32.checked_sum(
RMatrixF32.from_string(matA.value, 1e-6),
RMatrixF32.from_string(matB.value, 1e-6)
).to_string();
};
const performSub = async () => {
await init();
result.value = RMatrixF32.checked_sub(
RMatrixF32.from_string(matA.value, 1e-6),
RMatrixF32.from_string(matB.value, 1e-6)
).to_string();
};
const performMul = async () => {
await init();
result.value = RMatrixF32.checked_mul(
RMatrixF32.from_string(matA.value, 1e-6),
RMatrixF32.from_string(matB.value, 1e-6)
).to_string();
};
const mat = ref("");
const result2 = ref("Nothing yet...");
const preformGaussReduction = async () => {
await init();
result2.value = RMatrixF32.from_string(mat.value, 1e-6)
.gaussian_triangulation()
.to_string();
};
const performGaussJordanDeterminant = async () => {
await init();
result2.value = RMatrixF32.from_string(mat.value, 1e-6)
.determinant_using_gauss()
.toString();
};
const performGaussJordanInverse = async () => {
await init();
result2.value = RMatrixF32.from_string(mat.value, 1e-6)
.inverse_gauss_jordan()
.to_string();
};