问题标签 [nalgebra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 关于 roll pitch yaw 的 nalgebra 约定
我编写小型光线追踪器来学习 rust 语言。我决定使用 nalgebra 作为向量库等等。 https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=79c13e8cf2725d2398dcf1fac61c047c 从该示例中您可以看到滚动在 X 上旋转,但我的期望是滚动应该在 Z 上旋转。我没有找到文档中的 nalgebra 约定。使用该库的人是否可以向我指出该约定并告诉我是否可以通过 cargo config 更改它
rust - Rust 特征绑定膨胀/缺乏继承
我正在尝试将 nalgebra 和/或 ndarray Rust crates 包装成一个抽象LinearOperator
特征和相应的AdjointableOperator
等特征。问题是我得到了显着的“特征绑定膨胀”,甚至必须指定内部实现细节(Storage
, DefaultAllocator
)以使编译器不阻塞。在代数的情况下:
(在向量到向量操作的情况下,维度K
将为 1。理想情况下apply
只是一个函数调用,但编译器目前不允许定义它。)其中一些可能不是单独需要的LinearOperator
(例如DefaultAllocator : Allocator<E,M,N>
,对于伴随维度),但编译器甚至开始要求它们LinearOperator
一次AdjointableOperator
也被定义。在 ndarray 的情况下,边界的行数较少,但仍需要指定几乎没有记录的半内部特征。
所有这些 trait bound 都需要为 theAdjointableOperator
和其他 trait 重复,所以我尝试至少将需求压缩到自定义 trait 中:
然后仅Matrix<E,N,M,SM> : ValidMatrix<E,N,M,SM>
在 的定义中指定LinearOperator
。编译器立即开始抱怨DefaultAllocator
(可能)未实现。
那么有什么办法可以避免这种“trait bound bloat”,即 crate 的用户基本上必须访问越来越多的 crate 内部实现细节来为暴露的类型实现自己的特征?我可以考虑mul
在特征中指定等ValidMatrix
,并实现这些,但首先以这种方式设计上游板条箱肯定会更有效。
rust - 代数 OVector vs SVector?
代数中的OVector和SVector有什么区别?
为什么没有SPoint?
matrix - Rust 代数逆矩阵
有没有人没有一种简单的方法来使用 Rust nalgebra::Matrix 获得矩阵的逆?我正在尝试以与 C++ Eigen 库相同的方式执行此操作,但显然无法正常工作。
#cargo.toml
#main.rs