V
V
vyn2017-04-14 13:21:07
Java
vyn, 2017-04-14 13:21:07

Library of numerical methods. Which tool to choose?

Good afternoon! The task is to write a highly specialized, memory and processor time efficient, most likely, parallelized library of numerical optimization methods. The issue is the choice of instrument. It would be very good to fork an existing library and add your own methods. My horizons are unfortunately limited to c/c++ and java. I'm leaning towards c/c++. Subsequently, you can wrap the lib using JNA, for example.
1) What language to choose? C/C++ vs Java. What is your option? Why?
2) Java does not fully support the floating point standard, but is it easier to solve the problem on it? Again, the GC is haunted in this regard. C/C++ has a huge number of libraries, but given the need for high performance, it's easy to get your feet wet.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
R
res2001, 2017-04-14
@res2001

Even such a comparison is strange. If efficiency is required, then C/C++ is no option.
As for the legs - the devil is not so terrible. Write tests, be careful with pointers and everything will work out.

A
Alexey, 2017-04-14
@TheKnight

NumPy + SciPy. See what they're made of. Inside they have just the same libraries.
Java supports IEEE 754. Or are you talking about some other standard?
I also recommend reading about strictfp.
The impact of the GC on computations can be reduced by properly managing memory and allocated resources.
PS: There is no such language - C/C++. There are two distinct languages ​​- C and C++. And C at the moment has not been a subset of C++ for 15-20 years.

M
maaGames, 2017-04-14
@maaGames

Intel MKL, BLAS and a bunch of other libraries.

A
Alexander Skusnov, 2017-04-14
@AlexSku

Matlab (JAVA based) plus CUDA for parallelization.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question