obsidian_backup/多体+耦合求解器/动态数组调研.md

2.4 KiB
Raw Blame History

1、其他可能替代的方案

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
    1. 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
    1. src/base/ops.rs文件实现了矩阵的以下主要操作

    2. 索引操作:

    • 实现了Index和IndexMut trait支持通过usize或(usize, usize)索引访问矩阵元素
    • 支持一维和二维索引,会自动进行边界检查
    1. 取反操作:
    • 实现了Neg trait支持对矩阵进行取反操作
    • 提供了neg_mut方法用于原地取反
    1. 加法和减法操作:
    • 通过componentwise_binop_impl宏实现了Add/Sub trait和AddAssign/SubAssign trait
    • 支持矩阵与矩阵、矩阵与标量的加减运算
    • 提供了add_to/sub_to等方法用于将结果存储到指定矩阵中
    1. 乘法操作:
    • 实现了Mul trait和MulAssign trait
    • 支持矩阵与矩阵、矩阵与标量的乘法运算
    • 提供了tr_mul/ad_mul等方法用于转置/共轭转置后的乘法
    • 实现了Kronecker积运算
    1. 其他操作:
    • 实现了Sum和Product trait支持对矩阵序列求和或求积
    • 提供了mul_to等方法用于将结果存储到指定矩阵中

2 本身方法的速度