|Original author(s)||Anders Peterson|
|Stable release||v34 / April 16, 2013|
oj! Algorithms or ojAlgo, is open source Java library for mathematics, linear algebra and optimisation. It was first released in 2003  and is 100% pure Java source code and free from external dependencies. Its feature set make it particularly suitable for use within the financial domain.
- Linear Algebra in Java
- "high performance" multi-threaded feature-complete linear algebra package.
- Optimisation (mathematical programming) including LP, QP and MIP solvers.
- Finance related code (certainly usable in other areas as well):
- Extensive set of tools to work with time series - CalendarDateSeries, CoordinationSet & PrimitiveTimeSeries.
- Random numbers and stochastic processes - even multi-dimensional such - and the ability to drive these to do things like Monte Carlo simulations.
- A collection of Modern Portfolio Theory related classes - FinancePortfolio and its subclasses the Markowitz and Black-Litterman model implementations.
- Ability to download data from Yahoo Finance and Google Finance.
Example of Singular Value Decomposition (SVD):
SingularValue<Double> svd = SingularValueDecomposition.make(matA); svd.compute(matA); MatrixStore<Double> U = svd.getQ1(); MatrixStore<Double> S = svd.getD(); MatrixStore<Double> V = svd.getQ2();
Example of matrix multiplication:
PrimitiveDenseStore result = FACTORY.makeZero(matA.getRowDim(), matB.getColDim()); result.fillByMultiplying(matA, matB);
- Takaki, M.; D., Gheyi, R., Iyoda, J., d’Amorim, M., Prudêncio, R. B. (2010). "Randomized constraint solvers: a comparative study". Bioinformatics 6 (3): 243–253. doi:10.1007/s11334-010-0124-1.
- Vanek, O.; B., Jakob, M., Pechoucek, M. (2010). Transiting areas patrolled by a mobile adversary. Symposium on Computational Intelligence and Games. pp. 9–16.
- Official site "oj! Algorithms Project Page". oj! Algorithms. Retrieved July 2, 2013.