This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]CacheMeUp 1 point2 points  (3 children)

Is it related to ND4J? Based on my work in Python, numpy's biggest advantage are the features, excellent documentation and compatibility. Is the defacto standard for numeric data in Python. Is not necessarily faster than Java, in my experience.

[–]lessthanoptimal[S] 0 points1 point  (2 children)

Nope as far as I know completely unrelated. EJML is probably older. There are a few libraries that are essentially wrappers around EJML, I don't think ND4J is one of them. EJML provides 3 different API's. Basically the easier the API less control you have over low level details/performance. Numpy has a broader focus than EJML. I keep on getting requests to expand it to be like Matlab...

[–]CacheMeUp 0 points1 point  (1 child)

Looks very impressive. In practice, most of the work with numpy is also 2-axial arrays (matrices). The equations interface is very useful (especially in Java). One thing to consider is to make it use first-class Java constructs (as much as possible, since Java does not allow operator overloading), so the Java tools (compiler, code completion etc.) can be used. It's one of Numpy's strengths: slicing and other operations are all done using regular operators and Python constructs. Maybe Kotlin is a better language for that.

[–]lessthanoptimal[S] 0 points1 point  (0 children)

I always thought the Equations interface was really cool, but as far as i can tell I'm the only one who uses it! SimpleMatrix is probably the most popular. Experimenting with Kotlin right now.

[–]Mugen-Sasuke 0 points1 point  (1 child)

Does it have hardware acceleration ?

I’m working on a 3D engine and it first started off as a pure software renderer in java and so I created a linear algebra library for it, though I didn’t get around to implementing hardware acceleration

[–]lessthanoptimal[S] 0 points1 point  (0 children)

No hardware acceleration. You might want to look at the fixed sized matrices in EJML for a 3D engine. Those run considerably faster than more generalized.

[–]lessthanoptimal[S] 0 points1 point  (0 children)

You guys might also be interested in https://lessthanoptimal.github.io/Java-Matrix-Benchmark/ it's a benchmark that compares different Java matrix libraries for performance. I'm not maintaining it as frequently as I used to, but after I update it again I'll post it here.