## About

JOptimizer is an open source library implemented in pure java
programming language that addresses the solution of a minimization problem with
equality and inequality constraints,

minimize_{x} f_{0}(x) s.t.

f_{i}(x) ≤ 0, i=1,...,m

Ax = b,

where f_{0},...,f_{m}: **R**^{n}→**R** are convex
and twice continuously differentiable multivariate real functions, and A ∈
**R**^{pXn} with **rank**A = p < n.

This is given the name of *convex optimization* and, for example, LP, QP, QCQP, SOCP, SDP are special cases of it.

JOptimizer is thread-safe and can be used in a standalone application as well as in a J2EE environment:
in fact, one of its first goals is to fill the lack of a pure-java optimizer because many of the market libraries
run in an external process and that's not always a choice (especially in the case it has to be deployed in a J2EE server environment).

Internal linear algebra is based on the open source libraries commons-math and
Colt,
while theoretical foundation is based on the work of
S.Boyd and L.Vandenberghe,
"Convex Optimization".

- NOTE
- Use of commons-math and Colt
is only restricted at the internal level of JOptimizer and you as a user don't have to learn these APIs in order to adopt it.
Client code can be written in whatever (if any) linear algebra API, in the "test" source folder
you can find code examples with commons-math and Colt
(along with only standard JSE API examples).