Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I don't know what is proper etiquette -- if I should split this into two questions (one about Linear Algebra, one about Convex Optimization), please let me know.
I'm interested in:
(1) what library should I use for Linear Algebra in Java?
(2) what library should I use for convex optimization in Java?
(3) what benchmarks do we have for java libraries vs C libraries
Please note, although Java specifies platform independent floating point representation (which I believe makes things much slower) -- I'm willing to sacrifice that. It's okay for me if, on different platforms, my Java floating point ends up getting different values.
Thanks!
For convex Optimization , there is already one link here:
mathematical optimization library for Java --- free or open source recommendations?
For Liner ALgebra, you can use Colt
http://acs.lbl.gov/software/colt/
Hope this will help you
You can take a look at JOptimizer , open source java convex optimization project
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Computing Voronoi diagrams for collection of line segments is often considered to be one of the most studied problems in computer science, and has lots of practical applications.
Yet I was unable to find any implementation for it in java libraries (this the best library I found, and it is written in C++). JTS, one of the best geometry APIs in java, only includes algorithm to compute Voronoi diagram from set of points.
Currently I'm reading up articles about several algorithms computing this diagram, and if everything else fails, I'll try to implement one of those myself - but I would be a lot happier if it was possible to reuse some code that was already written and tested.
Maybe there is some library for computing Voronoi diagrams for set of line segments, that I overlooked in my search?
Here's a Java applet by Takashi Ohyama for computing the line-segment Voronoi diagram. That page also has links to resources for several related problems. The source for the applet is here.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Is there a open source java api that allows to compare two Abstract Syntax Trees of java source code?
I would like to see the differences between the two syntax trees, similar to how it is done in diff tools.
Yes, there are free implementations that output tree diffs:
GumTree (fast, multi language, integrates with git): https://github.com/GumTreeDiff/gumtree
ChangeDistiller (quite mature, built as a self contained library): https://bitbucket.org/sealuzh/tools-changedistiller/wiki/Home
CodingSpectator (AST diffing is hard-coded in the rest of the code): https://github.com/vazexqi/CodingSpectator/tree/codingtracker-ast-inference
Most diff tools compare lines, not syntax trees (see Wikipedia article for discussion).
There are some techical papers that talk about how to do syntax tree compares, e.g.,
Diff/TS: A Tool for Fine-Grained Structural Change Analysis
There are no APIs for computing tree differences available anywhere as far as I know. The problem is more complex than it first sounds, if you want to get a minimal diff. But the basic technique is to use some variation of Levenstein distance metrics.
We had to roll our own for our line of SmartDifferencers; fortunately, we have really good front ends for many langauges to produce accurate ASTs.
You end up with additional surprises, such as people that want to compare comments in spite of the fact that what you have are ASTs, wanting to compare broken files, to compare language dialects your grammar doesn't match, or codes that contain insertions of other languages, etc.. Do diff by lines doesn't have these issues, which is one reason line-diff is widespread and tree-diff is not.
I wonder if there is an ANTLR extension somewhere that can do this....
http://www.antlr.org/
http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
One thing I find very confortable with Numpy is the vectorization of operations with arrays (ie. the absence of any explicit looping), and the implicit element-by-element behavior of operations.
Since I have to move from Python to Java for a project, I was looking for any equivalent in well known math libraries (Colt, JScience, Apache Commons Math). But as far as I see it, none of them have equivalent capabilities.
Could anyone advise me?
I had the same problem as you but did not find a java solution. Java misses operator overloading for [] and has no slices. So you will not find a Java solution with the same, easy to read notation as numpy provides.
The nd4j library is essentially "NumPy for Java". It supports broadcasting and vector operations.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm trying to get the best possible performance from my quad core cpus, and i just discovered Parallel Colt (matrix-related operations).
Do you know any other package that include useful "parallel" utils (es. spanning tree, sorting, so on...)
you might want to take a look here:
java.util.concurrent that came with Java 5
I know this isn't exactly an answer to your question, but you might be interested in Scala. I believe utilizing many cores is one of the goals of Scala.
It also runs on the JVM so it interacts with java, is blazingly fast and contains all the new wizzy language features you might expect in a new language (and then some).
I suggest a package called LeoTask: https://github.com/mleoking/leotask
It helps you conduct tasks and aggregate the results in parallel.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm looking for an optimization library. My two requirements are that it does not use JNI and that it does not have license restrictions preventing it from being used on multiple computers commercially.
The only one I've found that meets these requirements is Choco, but it is unusably buggy.
Since I couldn't find any optimization software in Java I wrote my own implementation of the Simplex Method and submitted it to Apache Commons Math library: https://issues.apache.org/jira/browse/MATH-246
http://ojalgo.org/generated/org/ojalgo/optimisation/linear/LinearSolver.html
Recently JOptimizer, free and pure java, is available for linear programming and all other types of convex mathematical optimizations. It's simple to use and fully documented, the online site comes with a lot of examples.
Is your requirement to have any good, stable optimization library, or does it specifically need to apply the Simplex algorithm?
Drools Planner is pure Java (no JNI) and Apache licensed (fits your commercial needs), but instead of using Simplex, it uses metaheuristics (which scale well and deliver great results).
SuanShu has a suite of optimization algorithms, basic as well as advanced:
Java optimization
linear programming algorithm