Skip to main content
ARLS: Automatically Regularized Linear System Solver (Revised)


ARLS is intended for use in solving linear systems, Ax=b, which other solvers
may not be able to handle. Ill-conditioning is the usual reason for people to seek
alternative solvers such as this. ARLS also has a rich set of constraints.

All these solvers apply to any shape of the matrix, A. That is, the
system can have more rows than columns (over-determined), or the same number
of rows and columns (square), or fewer rows than columns (under-determined).
And the matix A can be full rank, or have near zero singular values,
or exactly zero singular values of any number.

Please see the in-code comments for details of calls and returns,
including example applications for each routine.

Also please see the code itself for version history.

USAGE

Our primary solver is:
x = arls(A, b)

If you need to solve many systems with the same matrix, A, but different b vectors, use:
x = arlsusv(b, U, S, Vt)
where U, S, and Vt are the singular value decomposition of A, from:
U, S, Vt = np.linalg.svd(A, full_matrices=False)

If you need to add constraint equations which must be satisfied exactly
(such as "the sum of the solution elements must be 100.0")
then put those equation in a separate system, Ex == f and call:
x = arlseq(A, b, E, f)

If you need to add inequality constraints, such as "x1 + x2 >= 1.0" then
put those equations in a separate system, Gx >= h and call:
x = arlsgt(A, b, G, h)
For "<=" constraints you need to multiply both sides by -1.0 to convert
the constraint to a ">=" constraint.

If you need both equality and inequality constraints, use
x =arlsall(A, b, E, f, G, h)

While you can require many different types of constraints using the above,
we offer three special cases routines which are more efficient and robust
and precise than using general constraints above:

If you know the solution should be non-negative, use:
x = arlsnn(A, b)
If you know the solution should be non-decreasing ("rising") then use:
x = arlsrise(A, b)
If you know the solution should be non-increasing ("falling") then use:
x = arlsfall(A, b)





Metadata

Release files for arls 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arls 2.1.0
File Size Uploaded
arls-2.1.0.tar.gz 21.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arls 2.1.0
File Interpreter ABI Platform
arls-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.2 kB

Release files / arls-2.1.0.tar.gz

Download URL arls-2.1.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b489f05d627516675e386851c0109e74ffb44a136d4267cf1cdfece61f76c12d
BLAKE2b-256 checksum
How to use checksums
336e6e9f2c9ca88118ab820673ff3e3792267bdcbc6911d54d0b65aaf2db8874
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release files / arls-2.1.0-py3-none-any.whl

Download URL arls-2.1.0-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b374d56f98714db881e28e7433c4b0c09d8c862cc81ca4882670d350b09cfb61
BLAKE2b-256 checksum
How to use checksums
71ba51327f25308d5061c6ffbdf71f575b906d3dc5aea7676dfcdbdcb11d17c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page