OjAlgo
Appearance
From Wikipedia, the free encyclopedia
| OjAlgo | |
|---|---|
| Original author | Anders Peterson |
| Stable release | v56.1.1
/ November 9, 2025 (2025年11月09日) |
| Operating system | Cross-platform |
| Type | Library |
| License | MIT License |
| Website | ojalgo |
oj! Algorithms or ojAlgo, is an 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
[edit ]- 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.
It requires Java 8 since version v38. As of version 44.0, the finance specific code has been moved to its own project/module named ojAlgo-finance.[3]
Usage example
[edit ]Example of singular value decomposition:
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:
PrimitiveDenseStoreresult=FACTORY.makeZero(matA.getRowDim(),matB.getColDim()); result.fillByMultiplying(matA,matB);
References
[edit ]- ^ Takaki, M.; Cavalcanti, 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. S2CID 11050378.
- ^ Vanek, O.; Bosansky, B.; Jakob, M.; Pechoucek, M. (2010). Transiting areas patrolled by a mobile adversary. Symposium on Computational Intelligence and Games. pp. 9–16.
- ^ a b "oj! Algorithms Project Page". oj! Algorithms. Retrieved July 2, 2013.
Retrieved from "https://en.wikipedia.org/w/index.php?title=OjAlgo&oldid=1322673270"