Re: [boost] proposal Multi multidimensional array library
Hi, Only now have I noticed this proposal, and here are some of my thoughts. It can be excellent to have something like standard MD arrays like numpy is today for python, but... 1. You haven't mentioned even once OpenCV which today is the de-facto standard for numerical computing in today's C++ world. While it isn't perfect - it actually has similar features in terms of array layout - and what is more important it has a library of high performance algorithms to process the data. You must talk at least about interoperability between cv::Mat and this library 2. While actual ndarry handling is nice, it is basically a tip of an iceberg. You need a decent set of high performance algo combined with it. Looks like there is a basic BLAS but the typical library has way-way more to make it useful. I looked over the code and didn't find include to cblas... Did I miss something? Also I see request to link cblas/openblas or so. I did breef look into implementation and it seems to be lacking of vectorization (use of intrinsics/vector operators) or have I missed? 3. Finally I do want to see comparison with stuff like OpenCV, Eigen and even uBlas (I know it isn't good) 4. If you do implement many high performance algorithms this library by any means shouldn't be header only. What is not clear to me is why should I use one over some existing solution like OpenCV? Artyom On Thu, Apr 27, 2023 at 12:30 AM Alfredo Correa via Boost < boost@lists.boost.org> wrote:
Hi all,
My name is Alfredo. I would like to propose this library called Multi for inclusion in Boost. Multi is a container and views library for (dynamic) multidimensional arrays.
The library is available here, https://gitlab.com/correaa/boost-multi.
On Thu, Sep 19, 2024, at 1:13 PM, Artyom Beilis via Boost wrote:
1. You haven't mentioned even once OpenCV [...] 4. If you do implement many high performance algorithms this library by any means shouldn't be header only.
What is not clear to me is why should I use one over some existing solution like OpenCV?
All of the points raised are actually a single one, and seem to misunderstand the scope of the library? I suppose it should be seen as a successor to Boost MultiArray, leveraging modern language features and side-stepping some of the pitfalls. That's not at all useless, and interop examples would be very valuable. However, not all code needs vectorization (beyond what the compiler will automatically do). I'm more interested in the relation to https://en.cppreference.com/w/cpp/container/mdspan - which seems to fill the same space: building block for flexibly indexed contiguous storage.
participants (2)
-
Artyom Beilis
-
Seth