3 ms·
> That equivalent would be ndarray It seems ndarray is conceptually similar to C libraries, it doesn’t have expression templates. When you write r = a * b * c
by Const-me 2y ago
> That equivalent would be ndarray
It seems ndarray is conceptually similar to C libraries, it doesn’t have expression templates.
When you write r = a * b * c with ndarray, you allocate, store and then load a temporary array with a * b. When you write r = a * b * c with Eigen, depending on the types it sometimes skips the temporary, and instead computes the complete expression in one shot. For some use cases, the tactic causes substantial performance win.
> Box (or Rc/Arc)
An array of boxes will cause another pointer chase: first to load the pointer, another one to reach the payload.
- xoranth 2y ago> expression templates That's one of the cases where you can't "mechanically" translate C++ to Rust. To obtain the same result, a good choice would be a proc macro. Which is a pain to implement, but will also give you more flexibility.