66 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1、其他可能替代的方案
## [nalgebra](https://github.com/dimforge/nalgebra):支持动态数组+数组的计算+数组分解,求解
- 1. matrix_construction.rs文件中nalgebra支持多种矩阵创建方式
- 直接指定元素值创建固定大小矩阵Matrix2x3::new
- 从行向量或列向量创建矩阵from_rows, from_columns
- 从切片创建矩阵from_row_slice, from_column_slice
- 使用函数生成矩阵元素from_fn
- 从迭代器创建矩阵from_iterator
- 创建动态大小矩阵DMatrix
- 创建对角矩阵from_diagonal_element
- 创建单位矩阵identity
- 2. matrix.rs文件nalgebra支持多种矩阵操作
- 矩阵转置transpose
- 矩阵共轭转置adjoint
- 矩阵共轭conjugate
- 矩阵缩放scale, unscale
- 矩阵元素映射map, map_with_location
- 矩阵元素折叠fold, fold_with
- 矩阵元素交换swap
- 矩阵复制copy_from, copy_from_slice
- 矩阵迹trace
- 矩阵对称部分symmetric_part
- 矩阵厄米特部分hermitian_part
- 矩阵对角化diagonal, map_diagonal
- 矩阵齐次坐标转换to_homogeneous, from_homogeneous
- 矩阵叉积cross, perp
- 矩阵叉积矩阵cross_matrix
- 矩阵夹角angle
- 3. src/base/ops.rs文件实现了矩阵的以下主要操作
1. 索引操作:
- 实现了Index和IndexMut trait支持通过usize或(usize, usize)索引访问矩阵元素
- 支持一维和二维索引,会自动进行边界检查
2. 取反操作:
- 实现了Neg trait支持对矩阵进行取反操作
- 提供了neg_mut方法用于原地取反
3. 加法和减法操作:
- 通过componentwise_binop_impl宏实现了Add/Sub trait和AddAssign/SubAssign trait
- 支持矩阵与矩阵、矩阵与标量的加减运算
- 提供了add_to/sub_to等方法用于将结果存储到指定矩阵中
4. 乘法操作:
- 实现了Mul trait和MulAssign trait
- 支持矩阵与矩阵、矩阵与标量的乘法运算
- 提供了tr_mul/ad_mul等方法用于转置/共轭转置后的乘法
- 实现了Kronecker积运算
5. 其他操作:
- 实现了Sum和Product trait支持对矩阵序列求和或求积
- 提供了mul_to等方法用于将结果存储到指定矩阵中
# 2 本身方法的速度