Hello everyone, I am new in the community. I would like to ask, how interesting would be to have in boost a new container with multiple indices (tensor) using variadic templates. I know that Boost.MultiArray library already exists in boost. However I think it does not fulfill the readability and friendliness of something like: newlib::tensor<3,double> t(2,2,3); t(0,0,0)=1; also with extra possibilities similar to Matlab/Octave t(newlib::all,1)=0; I would also like to add mathematical operations t1=t2+t3; using lazy evaluation like in armadillo package or in the David Abrahams and Aleksey Gurtovoy book (C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond). I fell that something similar to this is very important for numerical calculations and somehow it is not a standard in C++ (maybe I am missing something). Best regards, Paulo
Have you looked at eigen?
http://eigen.tuxfamily.org/index.php?title=Main_Page
The quality of the lib is certainly high enough to be in boost IMO, but I'm sure there's some reason why it isn't.
That said AFAIK the full tensor support (i.e. beyond 2 dimensions) is currently experimental.
Rob
________________________________
From: Boost
On 09.01.2017 10:44, Paulo Pereira wrote: [...]
I fell that something similar to this is very important for numerical calculations and somehow it is not a standard in C++ (maybe I am missing something).
There certainly already exist a bunch of such tools (Eigen, Blitz++, OpenVSIP, ...). They all promote specific programming and execution models tailored to particular problems or problem domains, so I expect it to be rather hard to convince anyone that either one of those should be considered a general solution favoured over the others. If it wasn't for that reason I'm sure we would already have such a library in Boost. Stefan -- ...ich hab' noch einen Koffer in Berlin...
On 1/9/17 1:16 PM, Stefan Seefeld wrote:
On 09.01.2017 10:44, Paulo Pereira wrote:
[...]
I fell that something similar to this is very important for numerical calculations and somehow it is not a standard in C++ (maybe I am missing something).
There certainly already exist a bunch of such tools (Eigen, Blitz++, OpenVSIP, ...). They all promote specific programming and execution models tailored to particular problems or problem domains, so I expect it to be rather hard to convince anyone that either one of those should be considered a general solution favoured over the others. If it wasn't for that reason I'm sure we would already have such a library in Boost.
Stefan
We do have some pieces, Quaternions, Octonions, QVM, uBlass multi_array and likely others. Robert Ramey
participants (4)
-
Paulo Pereira
-
Rob Conde
-
Robert Ramey
-
Stefan Seefeld