Jump to content

OjAlgo

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 83.251.26.62 (talk) at 18:33, 11 May 2015. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

OjAlgo
Original author(s)Anders Peterson
Stable release
v37.1 / January 31, 2015 (2015-01-31)
Operating systemCross-platform
TypeLibrary
LicenseMIT License
Websiteojalgo.org

oj! Algorithms or ojAlgo, is open source Java library for mathematics,[1][2] linear algebra and optimisation. It was first released in 2003 [3] 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.

Capabilities

  • 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.

Usage Example

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);

References

  1. ^ Takaki, M. (2010). "Randomized constraint solvers: a comparative study". Bioinformatics. 6 (3): 243–253. doi:10.1007/s11334-010-0124-1. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  2. ^ Vanek, O. (2010). Transiting areas patrolled by a mobile adversary. Symposium on Computational Intelligence and Games. pp. 9–16. {{cite conference}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  3. ^ Official site "oj! Algorithms Project Page". oj! Algorithms. Retrieved July 2, 2013. {{cite web}}: Check |url= value (help)