4 ms·
As far as I understand it, there's core.matrix which is intended as sort of a universal Clojure API for linear algebra. There are different implementations of t
by hencq 9y ago
As far as I understand it, there's core.matrix which is intended as sort of a universal Clojure API for linear algebra. There are different implementations of the core.matrix API, like the pure JVM vectorz-clj, BLAS based clatrix and even a clojurescript one, aljabr. Incanter uses core.matrix and can therefore use these different implementations. However, the Neanderthal library does not support core.matrix, so Incanter can't use it.
As for why Neanderthal doesn't support core.matrix, I don't know. I see the author is active in this thread, so he can probably give a much better answer, but from reading the mailing lists I gather he mainly created Neanderthal to scratch his own itch, so core.matrix support wasn't a priority.
- deleted 9y ago[deleted]
- agibsonccc 9y agoDisclaimer: I run a competitor to neanderthal called nd4j. A community member of ours made an implementation of core.matrix backed by nd4j a while back: https://github.com/ds923y/nd4clj https://github.com/ds923y/nd4clj It needs a bit of updating though. We support cpu and gpu cublas and arbitrary matrix operations. We have our own memory management engine among other things built in. This lib will also support automatic differentiation and sparse in the next few months.
- rux 9y agoDisclaimer: my brother is mikera, maintainer of core.matrix I asked why neanderthal wasn't part of core.matrix and Mike replied that he'd like if it were 'for the sake of the ecosystem', and he'd offered some code and tests last year to get this started but it didn't get taken in. It's still there from last October, probably a bit out of date by now... https://github.com/mikera/neanderthal/network https://github.com/mikera/neanderthal/network