All Classes and Interfaces
Class
Description
A merger of two MatrixStore instances by placing one store below the other.
1-dimensional accessor (get) methods.
This interface complements Access1D.Visitable but does not extend it.
2-dimensional accessor methods
N-dimensional accessor methods
[l]T[x] + c
Do not cache instances of this class! The methods BigAggregator.getSet(),
ComplexAggregator.getSet() and PrimitiveAggregator.getSet() return threadlocal
instances, and when you access the individual aggregators they are AggregatorFunction.reset()
for you.
Deprecated.
https://www.alphavantage.co/documentation/
Alternator
Given a vector x, the i?amax functions return the position of the vector element x[i] that has the largest
absolute value for real flavors, or the largest sum |Re(x[i])|+|Im(x[i])| for complex flavors.
Given a vector x, the i?amin functions return the position of the vector element x[i] that has the smallest
absolute value for real flavors, or the smallest sum |Re(x[i])|+|Im(x[i])| for complex flavors.
(currency) amount as in "amount = price * quatity"
Array1D
Array2D
ArrayAnyD
A one- and/or arbitrary-dimensional array of ComplexNumber.
A one- and/or arbitrary-dimensional array of Quaternion.
A one- and/or arbitrary-dimensional array of RationalNumber.
A one- and/or arbitrary-dimensional array of double.
A one- and/or arbitrary-dimensional array of double.
A one- and/or arbitrary-dimensional array of Quadruple.
A one- and/or arbitrary-dimensional array of BigDecimal.
A one- and/or arbitrary-dimensional array of double.
A one- and/or arbitrary-dimensional array of double.
A one- and/or arbitrary-dimensional array of double.
A one- and/or arbitrary-dimensional array of double.
https://en.wikipedia.org/wiki/Activation_function
ASCII codes
0
1
2
3
4
5
6
7
0
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
8
BS
HT
LF
VT
FF
CR
SO
SI
16
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
24
CAN
EM
SUB
ESC
FS
GS
RS
US
32
SP
!
"
#
$
%
&
'
40
(
)
*
+
,
-
.
/
48
0
1
2
3
4
5
6
7
56
8
9
:
;
<
=
>
?
64
@
A
B
C
D
E
F
G
72
H
I
J
K
L
M
N
O
80
P
Q
R
S
T
U
V
W
88
X
Y
Z
[
\
]
^
_
96
`
a
b
c
d
e
f
g
104
h
i
j
k
l
m
n
o
112
p
q
r
s
t
u
v
w
120
x
y
z
{
|
~
DEL
http://www.lammertbies.nl/comm/info/ascii-characters.html
The ?asum routine computes the sum of the magnitudes of elements of a real vector, or the sum of magnitudes
of the real and imaginary parts of elements of a complex vector: res = |Re x1| + |Im x1| + |Re x2| + |Im
x2|+ ...
Utilities for
AutoCloseable
Consumer
:sUtilities for
AutoCloseable
Supplier
:sThe ?axpy routines perform a vector-vector operation defined as y := a*x + y where: a is a scalar x and y
are vectors each with a number of elements that equals n.
A BasicArray is 1-dimensional, but designed to easily be extended or encapsulated, and then treated as
arbitrary-dimensional.
For when you want to emphasise that something is a (mathematical) function.
BasicLogger is not meant to replace any other logging library.
Temporarily store data/text.
How much memory, and how many threads share that memory.
A base class for, easy to use, immutable (thread safe) matrices with a rich feature set.
A (CSV) parser interface.
A BasicSeries is a SortedMap with:
Keys restricted to Comparable (the keys have a natural order)
Values restricted to Comparable (the values are "numeric" as in extending
Number
or implementing NumberDefinition
.A series with naturally sequenced keys - given any key there is a natural "next" key, e.g.
When you're going to instantiate multiple
BatchNode
:s and you want them to share some properties,
this is a convenient alternative.A batch processing data node for when there's no way to fit the data in memory.
A general matrix [A] can be factorized by similarity transformations into the form [A]=[LQ][D][RQ]
-1 where:
[A] (m-by-n) is any, real or complex, matrix
[D] (r-by-r) or (m-by-n) is, upper or lower, bidiagonal
[LQ] (m-by-r) or (m-by-m) is orthogonal
[RQ] (n-by-r) or (n-by-n) is orthogonal
r = min(m,n)
Only the reference type parameter (BigDecimal) methods are actually implemented.
A
BigDecimal
based implementation of the Scalar
interface.A BinaryFunction with a set/fixed first argument.
A BinaryFunction with a set/fixed second argument.
The frequency in count indepedent trials, each with probability probability, has a binomial distribution.
View/Forecast/Opinion
BooleanFormat doesn't do anything useful, but it was needed for BooleanContext (that doesn't
do much either).
The odd member among the array implementations.
Each/every business object interface should extends this
BusinessObject
interface (and
preferably nothing else).The ?cabs1 is an auxiliary routine for a few BLAS Level 1 routines.
Designed to complement CalendarDate.
Designed to complement CalendarDate.
https://en.wikipedia.org/wiki/Cauchy_distribution
A circular char buffer - an Appendable CharSequence that always hold exactly
65536 characters.
Cholesky: [A] = [L][L]H (or [R]H[R])
A selection (re-ordering) of columns.
Sparse columns – columns can be added and removed.
https://reference.wolfram.com/language/tutorial/CombinatorialFunctions.html
Stuff common to
Hardware
and VirtualMachine
.ComplexNumber is an immutable complex number class.
ConjugatedStore
For solving [A][x]=[b] when [A] is symmetric and positive-definite.
Constant valued function - always returns the same value.
1/2 [x]T[Q][x] - [l]T[x]
ConvexSolver solves optimisation problems of the form:
A
CoordinationSet
is used to coordinate a set of CalendarDateSeries
instances.The ?copy routines perform a vector-vector operation defined as y = x, where x and y are vectors.
A reusable data batch.
Various data processors that could be useful when doing data science or similar.
A
DataInput
based FromFileReader
.DataTransform is a functional interface that can be used to transform data.
A
DataOutput
based ToFileWriter
.This
TypeContext
deals with the old Date
.Will switch between any/all known parsers producing
DatePrice
subclasses.
Only classes that will act as a delegate to a MatrixDecomposition implementation from this
package should implement this interface.
Each and every element occupies memory and holds a value.
Will detect which delegate parser to use.
Solves optimisation problems of the form:
The discrete Fourier transform (DFT) converts a finite sequence of equally-spaced samples of a function
into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which
is a complex-valued function of frequency.
Distribution
The ?dot routines perform a vector-vector reduction operation defined as Equation where xi and yi are
elements of vectors x and y.
The ?dotc routines perform a vector-vector operation defined as: Equation
The ?dotu routines perform a vector-vector reduction operation defined as Equation where xi and yi are
elements of complex vectors x and y.
Requires all variables to have both lower and upper bounds.
Represents a portfolio on the efficient fronter.
[A] = [V][D][V]-1 ([A][V] = [V][D])
[A] = any square matrix.
[V] = contains the eigenvectors as columns.
[D] = a diagonal matrix with the eigenvalues on the diagonal (possibly in blocks).
An
ElementsSupplier
is not necessarily (or not yet) a matrix, but something from which the elements
of a matrix can be derived.Singleton (immutable)
Map
:s with primitive valued specialisations.Allows you to wrap and treat two arrays as a
Collection
of key-value pairs.Distribution of the sum of aCount random variables with an exponential distribution with parameter aLambda.
To help implement exact decimal numbers with a fixed number of decimal places (fixed scale).
Distribution of length of life when no aging.
Think of an Expression as one constraint or a component to the objective function.
Lets you construct optimisation problems by combining (mathematical) expressions in terms of variables.
Counts of different kinds of model entities.
Connects solver constraints and variables back to model entities.
Optimisation.Solver
:s that should be usabale from ExpressionsBasedModel
needs to
implement a subclass of this.For when the structures can be either dense or sparse.
For when the structures can be either dense or sparse.
For when the structures can be either dense or sparse.
A field is a commutative ring (even the multiplication operation) with notions of addition, subtraction,
multiplication, and division.
Directly mapping the original internal construction
Same as v1 but for float rather than double
Mathematical Programming System (MPS) parser
BoundType used with the BOUNDS section.
RowType used with the ROWS and RANGES sections.
https://se.mathworks.com/help/matlab/matlab_prog/compatible-array-sizes-for-basic-operations.html
A source of (historical) financial time series data.
A FinancePortfolio is primarily a set of portfolio asset weights.
An array (double[] or float[]) builder/converter.
Abstract base class for TypeContext implementations backed by Format.
This is the real coefficient trigonometric form of the Fourier series.
Count the occurrence of different keys
A predefined/standard set of functions.
Distribution of the sum of aCount random variables with an exponential distribution with parameter aLambda.
Lanczos approximation.
This GaussianField class is a generalization, as well as the underlying implementation, of
GaussianProcess.
A Gaussian process is a
RandomProcess
where each variable has a normal distribution.For solving [A][x]=[b] where [A] has non-zero elements on the diagonal.
Eigenvalues and eigenvectors of a real matrix.
AbstractDecomposition
A generic implementation of PhysicalStore.
The number of required trials until an event with probability aProbability occurs has a geometric
distribution.
Diffusion process defined by a stochastic differential equation:
An alternative MIP solver using Gomory Mixed Integer (GMI) cuts – purely iterative with no branching.
A group is a set of elements paired with a binary operation.
To be used by non fixed size data structures that delegate the actual storage to a DenseArray.
The first element in the array should correspond to total system resources; the total amount of RAM and
the total number of threads (Typically the same as what is returned by
Runtime.availableProcessors()).
Eigenvalues and eigenvectors of a real matrix.
[A] -= ([a][b]c+[b][a]c)
[A] is assumed to be hermitian (square symmetric) [A] = [A]C.
[A] is assumed to be hermitian (square symmetric) [A] = [A]C.
Hessenberg: [A] = [Q][H][Q]T A general square matrix [A] can be decomposed by orthogonal
similarity transformations into the form [A]=[Q][H][Q]T where
[H] is upper (or lower) hessenberg matrix
[Q] is orthogonal/unitary
Performs Householder transformation from both sides simultaneously assuming that [A] is hermitian (square
symmetric) [A] = [A]H.
IdentityStore
Reads IDX-files as described at THE MNIST DATABASE page.
Deprecated.
It needs to be updated to function...
https://iextrading.com/developer/docs/#chart
Treats an image as a matrix.
Wrap two arrays (of keys and values) and treat the result as a
Map
.An array of int:s (indices) that are partitioned to be either "included" or "excluded".
An in-memory "file" that can be used with some
implementations instead of a
ToFileWriter
and/or
invalid reference
FromFileReaderr
File
.When a node is determined to be a leaf - no further branching - what was the reason?
Gomory Mixed Integer Cut Configuration
A
Optimisation.Solver
implementation that wraps an ExpressionsBasedModel
.A chainable and reversible in-place (equation system) solver.
Solves optimisation problems of the form:
Algorithm from: Solving quadratic programs to high precision using scaled iterative refinement
Mathematical Programming Computation (2019) 11:421–455 https://doi.org/10.1007/s12532-019-00154-6
Mathematical Programming Computation (2019) 11:421–455 https://doi.org/10.1007/s12532-019-00154-6
For solving very large sparse equation systems – [A][x]=[b].
For solving [A][x]=[b] where [A] has non-zero elements on the diagonal.
B byte signed byte
C char Unicode character code point in the Basic Multilingual Plane,
encoded with UTF-16
D double double-precision floating-point value
F float single-precision floating-point value
I int integer
J long long integer
L ClassName ; reference an instance of class ClassName
S short signed short
Z boolean true or false
[ reference one array dimension
A pair, like
Map.Entry
without Map.Entry.setValue(Object)
.A pair of the same type.
LDL: [A] = [L][D][L]H (or [R]H[D][R])
LDU: [A] = [L][D][U] ( [PL][L][D][U][PU] )
A merger of two MatrixStore instances by placing one store to the right of the other.
[l]T[x]
Compared to
this builder:
1) Accepts inequality constraints
2) Has relaxed the requiremnt on the RHS to be non-negative (both equalities and inequalities)
invalid reference
LinearSolver.StandardBuilder
1) Accepts inequality constraints
2) Has relaxed the requiremnt on the RHS to be non-negative (both equalities and inequalities)
An integration to a new/alternative/experimental LP-solver.
LP (simplex tableau) meta data.
Logical stores are (intended to be) immutable.
A continuous distribution in which the logarithm of a variable has a normal distribution.
A
SortedMap
with primitive valued long keys and Comparable
values (incl.A Hessenberg matrix is one that is "almost" triangular.
LU: [A] = [L][U]
MarketEquilibrium translates between the market portfolio weights and the equilibrium excess returns.
The Markowitz model, in this class, is defined as:
The number sets supported by ojAlgo, paired with a declaration of how they are implemented/approximated.
Definition of what's common to
BasicMatrix
and MatrixStore
.A matrix (linear algebra) with Complex
NumberSet.C
elements, implemented using dual 64-bit double
values.Notation used to describe the various matrix decompositions:
[A] could be any matrix.
Several matrix decompositions can be expressed "economy sized" - some rows or columns of the decomposed
matrix parts are not needed for the most releveant use cases, and can therefore be left out.
Some matrix decompositions are only available with hermitian (symmetric) matrices or different
decomposition algorithms could be used depending on if the matrix is hemitian or not.
The pivot or pivot element is the element of a matrix, or an array, which is selected first by an
algorithm (e.g.
A rank-revealing matrix decomposition of a matrix [A] is a decomposition that is, or can be transformed
to be, on the form [A]=[X][D][Y]T where:
[X] and [Y] are square and well conditioned.
[D] is diagonal with nonnegative and non-increasing values on the diagonal.
Eigenvalue and Singular Value decompositions can calculate the "values" only.
MatrixFactory creates instances of classes that implement the BasicMatrix
interface and have a constructor that takes a MatrixStore as input.
A matrix (linear algebra) with Quaternion
NumberSet.H
elements, implemented using four 64-bit
double values.
Contents in this package loosely corresponds to BLAS.
Intermediate step in a matrix pipeline – a chain of operations to be executed when the elements are
extracted.
A matrix (linear algebra) with Rational
NumberSet.Q
elements, implemented using dual 64-bit long
values.A matrix (linear algebra) with Real
NumberSet.R
elements, approximated by 32-bit float.A matrix (linear algebra) with Real
NumberSet.R
elements, approximated by 64-bit double.A matrix (linear algebra) with Real
NumberSet.R
elements, approximated by 128-bit floating-point
values (implemented using dual 64-bit double).
A MatrixStore is a two dimensional store of numbers/scalars.
MemoryEstimator
Math utilities missing from
Math
.Model entities are identified and compared by their names only.
This base class contains some model/problem specific data required by the
IntegerSolver
.When implementing your own
ModelStrategy
extending this abstract class is a good starting
point.An example
ExactDecimal
implementation corresponding to the SQL data type MONEY or DECIMAL(19,4).Twice (Continuously) Differentiable Multiary Function
Multiplies an hermitian (square symmetric) matrix with a vector.
Maintains a list of
Equation
:s and delegates to a IterativeSolverTask.SparseDelegate
.1-dimensional mutator methods
Fills the target
Mix/combine the previously existing value, at index, with the supplied addend.
Anything/everything that does not require interaction with already existing elements.
2-dimensional mutator methods
A few operations with no 1D or AnyD counterpart.
Apart from extending
Mutate2D.Receiver
this interface extends
Mutate2D.Modifiable
and Mutate2D.Exchangeable
which both imply access to
existing elements as well as Access2D
that dictates explicit access.N-dimensional mutator methods
An Artificial Neural Network (ANN) builder.
An Artificial Neural Network (ANN) builder/trainer.
Under general conditions, the sum of a large number of random variables is approximately normally
distributed (the central limit theorem).
Normalised weights Portfolio
The ?nrm2 routines perform a vector reduction operation defined as res = ||x||, where: x is a vector, res
is a value containing the Euclidean norm of the elements of x.
Infinity norm - largest absolute value
Think of this as a MathContext that specifies both precision and scale.
An interface defining a "Number".
Think of this as an
ArrayList
that can only contain numbers, but with a few extra features.Some special sets of numbers commonly used in mathematics
Off heap memory array.
To be implemented by classes that are not directly mutable themselves, but that can operate on the elements
of some internal/future 2D data structure – similar to streams in some sense.
Constraint
An
Optimisation.Model
implementation should not depend on any specific
Optimisation.Solver
, and Optimisation.Solver
implementations should be usable
independently of any Optimisation.Model
.Objective
Basic description of the size/structure of an optimisation problem.
An Optimisation.Solver instance implements a specific optimisation algorithm.
OptimisationService.Solver
and OptimisationService.Integration
implementations that make use of Optimatika's
Optimisation-as-a-Service (OaaS).Experimental parallelised version of
GaussSeidelSolver
.A set of standard levels of parallelsim derived from the number of available cores and optionally capped by
reserving a specified amount of memory per thread.
A ParameterFunction with a set/fixed parameter.
Password
A periodic function is a function that repeats its values in regular intervals or periods.
First runs the dual algorithm (with a possibly modified objective function) to establish feasibility, and
then the primal to reach optimality.
PhysicalStore:s, as opposed to MatrixStore:s, are mutable.
Array class limited by integer (int, not long) indices.
http://mathworld.wolfram.com/PochhammerSymbol.html
https://en.wikipedia.org/wiki/Falling_and_rising_factorials
The Poisson distribution is a discrete probability distribution that expresses the probability of a given
number of events occurring in a fixed interval of time and/or space if these events occur with a known
average rate and independently of the time since the last event.
A Poisson process is a stochastic process which counts the number of events in a given time interval.
BigPolynomial
price or exchange rate as in "amount = price * quatity" or "amount = rate * amount"
Requires the initial basis to be feasible (doesn't do a phase-1).
Only the primitive parameter (double) methods are actually implemented.
Intended as a "boxed" version of any/all primitive numeric types.
Drive a set of processes simultaneously – correlated or uncorrelated.
A simple wrapper around an
ExecutorService
that makes it easier to process collections of items in
parallel.Incorrect use of the API.
[x]T[Q][x] + c
Solves optimisation problems of the form:
QR: [A] = [Q][R] Decomposes [this] into [Q] and [R] where:
[Q] is an orthogonal matrix (orthonormal columns).
[x]T[Q][x] + [l]T[x] + c
https://stackoverflow.com/questions/66962567/how-to-emulate-double-precision-using-two-floats-in-opengl-es
RationalFunction
quantity as in "amount = price * quatity"
A
implementation of PhysicalStore.
invalid reference
float
A
implementation of PhysicalStore.
invalid reference
double
A random field is a generalization of a stochastic process such that the underlying parameter need no
longer be a simple real or integer valued "time", but can instead take values that are multidimensional
vectors, or points on some manifold.
RandomNumber
A random/stochastic process (a series of random variables indexed by time or space) representing the
evolution of some random value.
RationalFunction
In many ways similar to InPlaceDecomposition but this class is hardwired to work with double[][] data.
Eigenvalues and eigenvectors of a real matrix.
For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n orthogonal matrix Q and an n-by-n
upper triangular matrix R so that A = Q*R.
Singular Value Decomposition.
Uses double[][] internally.
Something that potentially could go wrong, actually did go wrong.
A one- and/or arbitrary-dimensional array of Comparable.
Locate/fetch resources such as csv, json or text/html.
ResourceSpecification - it's a URI/URL builder.
A ring is a commutative group (addition operation) with a second binary operation (multiplication) that is
distributive over the commutative group operation and is associative.
Given two complex vectors x and y, each vector element of these vectors is replaced as follows: xi = c*xi +
s*yi yi = c*yi - s*xi
Given the Cartesian coordinates (a, b) of a point, these routines return the parameters c, s, r, and z
associated with the Givens rotation.
Given two vectors x and y, each vector element of these vectors is replaced as follows: for i=1 to n, where
H is a modified Givens transformation matrix whose values are stored in the param[1] through param[4]
array.
Given Cartesian coordinates (x1, y1) of an input vector, these routines compute the components of a
modified Givens transformation matrix H that zeros the y-component of the resulting vector:
A selection (re-ordering) of rows.
Sparse rows – rows can be added and removed.
The ?scal routines perform a vector operation defined as x = a*x where: a is a scalar, x is an n-element
vector.
A Scalar is:
A one- and/or arbitrary-dimensional array of Scalar.
The ?sdot routines compute the inner product of two vectors with double precision.
An array implemented as a sequence of segments that together make up the data structure.
Divides a large file in segments and then reads those (in parallel) using memory mapped files (memory
mapped file segments).
Selects (rearranges) existing rows and/or columns.
An extrapolator produces new data points to existing series.
A forecaster is restricted to CalendarDate keys and is intended to predict something related
to future keys/dates.
A function that maps from a (collection of) series and one or more keys to a series of numbers.
An interpolator produces new data points to existing series, inbetween existing keys.
Make http/https calls.
This is actually a wrapper of a future response.
When you need to make a sequence of calls maintaining some state inbetween calls.
Does not change the matrix size/shape, but applies some structure to the elements.
SimpleAsset is used to describe 1 asset (portfolio member).
Meant to replace
SimplexTableauSolver
.Exit from
SimplexStore.ColumnState.BASIS
to either SimplexStore.ColumnState.LOWER
or SimplexStore.ColumnState.UPPER
.Classic simplex tableau solver:
Primal algorithm
2-phase
All variables assumed >=0, and RHS required to be >=0
Variable bounds other than >=0 handled like constraints
Computes Q while decomposing.
Singular Value: [A] = [U][D][V]T Decomposes [this] into [U], [D] and [V] where:
[U] is an orthogonal matrix.
Only stores nonzero elements and/or elements specifically set by the user.
A sparse matrix (this implementation) is not thread safe.
May be a preferable way to build a sparse matrix if:
You don't know the number of nonzero elements in advance.
Process with fixed mean and (possibly) fluctuating variance given by a
ScedasticityModel
.This stopwatch is always running.
StringContext
A (fixed size) 1-dimensional data structure.
A (fixed size) 2-dimensional data structure.
A (fixed size) any-dimensional data structure.
SuperimposedStore
Given two vectors x and y, the ?swap routines return vectors y and x swapped, each replacing the other.
An implementation of
TypeContext
that is implemented in terms of DateTimeFormatter
and
TemporalAdjuster
.An n:th-rank tensor in m-dimensional space is a mathematical object that has n indices and m^n components
and obeys certain transformation rules.
A reusable delimited "text line" builder.
A transformable 2D (sub)region.
Represents an in-place transformation of a 1D data structure – the transformable is mutated.
Represents an in-place transformation of a 2D data structure – the transformable is mutated.
Represents an in-place transformation of a AnyD data structure – the transformable is mutated.
Tridiagonal: [A] = [Q][D][Q]H Any square symmetric (hermitian) matrix [A] can be factorized by
similarity transformations into the form, [A]=[Q][D][Q]-1 where [Q] is an orthogonal (unitary)
matrix and [D] is a real symmetric tridiagonal matrix.
A
TwoStepMapper
is a mapper/reducer that is used in 2 steps – TwoStepMapper.consume(Object)
and
TwoStepMapper.getResults()
.Enables combining the state of multiple instances.
A frequency counter that optionally filters some elements when merging subresults.
Enables merging the results from multiple instances.
Will calculate the function value for each input item, and cache the result.
A type context provides two basic services:
It enforces some sort of rule/limit regarding size, accuracy or similar.
Solves optimisation problems of the form:
Certain waiting times.
A Hessenberg matrix is one that is "almost" triangular.
Variable
A vector space is a set of objects called vectors, where a vector is a tuple of fields/scalars/numbers.
Useful as length of life distribution in reliability theory.
Deprecated.
Deprecated.
Deprecated.
ZeroStore
This class implements the Z-transform for a given complex number z.