Open nordlow opened 2 years ago
Minerva is a linear library for visualisation. BLAS / LAPACK based libraries can't be used instead.
Minerva is a linear library for visualisation. BLAS / LAPACK based libraries can't be used instead.
I take it you mean Miverna is library for algbraic operations on fixed-dimenisonal (typically 2, 3 and 4-dimensional) vectors and matrices which can be applied to geometric operations in visualization libraries. I thought that was supposed to be supported by lubeck and mir.
I take it you mean Miverna is library for algbraic operations on fixed-dimenisonal (typically 2, 3 and 4-dimensional) vectors and matrices which can be applied to geometric operations in visualization libraries. I thought that was supposed to be supported by lubeck and mir.
No. Mir provides only a layer on top of BLAS/LAPACK
I found other linear algebra libraries either incredible sophisticated where only a very small percentage is actually interesting for the targeted use-case of Minerva, they used C++ libraries somewhere in the back or I did not find / did not enough research on them. Plus, maybe I suffered a bit from the "not invented here syndrome". But like 9il mentioned, the use case of this library is graphics / visualization and for now it is only here to power a highly unoptimized ray tracer. A huge point I want to have is also the pure functional interface of the library, which is (probably) not given by high performance LA libraries. Another huge point is the "dependency-less-ness". I absolutely don't want any linking to any other libraries outside the D ecosystem (this is mostly not a sane decision that I made for myself).
So all in all, if there is a pure functional, dependency-less linear algebra which is not too filled with operations not needed for graphics/visualization, Minerva could easily replaced by it.
I hope this clears up a bit of why I created Minerva. Thanks for being interested and involved in the topic and in what makes OSS great, because I also think if there is already some library doing something, it would be better to support the already existing thing instead of creating something new.
Cool. Anyway, you might find my https://github.com/nordlow/phobos-next/blob/master/src/nxt/geometry.d useful. Boost License. Pick what you like.
There's already a state-of-the-art stack of linear algebra at https://code.dlang.org/packages/lubeck and https://code.dlang.org/packages/mir-core that's been actively developed for years mainly by @9il. Why create yet another instead of helping out developing mir-core and lubeck?