问题标签 [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.

0 投票
1 回答
42 浏览

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 更改它

0 投票
0 回答
80 浏览

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,并实现这些,但首先以这种方式设计上游板条箱肯定会更有效。

0 投票
0 回答
37 浏览

rust - 代数 OVector vs SVector?

代数中的OVectorSVector有什么区别?

为什么没有SPoint?

0 投票
1 回答
60 浏览

matrix - Rust 代数逆矩阵

有没有人没有一种简单的方法来使用 Rust nalgebra::Matrix 获得矩阵的逆?我正在尝试以与 C++ Eigen 库相同的方式执行此操作,但显然无法正常工作。

#cargo.toml

#main.rs