package lacaml
Install
Dune Dependency
Authors
-
EEgbert Ammicht <eammicht@lucent.com>
-
PPatrick Cousot <Patrick.Cousot@ens.fr>
-
SSam Ehrlichman <sehrlichman@janestreet.com>
-
FFlorent Hoareau <h.florent@gmail.com>
-
MMarkus Mottl <markus.mottl@gmail.com>
-
LLiam Stewart <liam@cs.toronto.edu>
-
CChristophe Troestler <Christophe.Troestler@umons.ac.be>
-
OOleg Trott <ot14@columbia.edu>
-
MMartin Willensdorfer <ma.wi@gmx.at>
Maintainers
Sources
sha256=df0b945fde36c325965dbe4c8df787661c76fe44bffb724555dd384f2fd9b700
sha512=9cb60f3797eadc62daf946c527f79de9722f002f34b2b24efaef1fefc1846f780a3769da888eaa0bcc45993159f810de8b50244f59bf34f434c8a068527a5935
doc/CHANGES.html
11.1.0 (2024-11-28)
- Bug fix: moved incorrect
Bool_val
out of blocking section. - Removed -O3, -ffast-math, and -march=native flags. They may be too risky as defaults.
- Rewrote README and improved changelog.
- Reformatted all C-code using
clang-format
and OCaml code usingocamlformat
. - Added GitHub workflow.
11.0.10 (2023-05-16)
- Fixed platform configuration bug
11.0.9 (2023-05-05)
Fixed a bug in the bytecode bindings for
lamch
, which also affectedsyevr
. These functions should now not crash anymore when compiling to bytecode or using the OCaml interpreter.Thanks to Philippe Veber philippe.veber@gmail.com for the bug report.
Added support for Apple Silicon.
Thanks to Marcello Seri marcello.seri@gmail.com for this contribution.
- Improved Dune build rules
11.0.8 (2020-08-15)
- Improved detection of (complex)
dotu
anddotc
calling conventions.
11.0.7 (2020-07-30)
Removed package dependencies on
stdio
andbase
. This allows testing with the new OCaml multicore compiler, which as of now does not yet support these libraries.Thanks to Anthony Scemama for this contribution.
- Added support for const char strings in stubs due to stricter handling in newer OCaml runtimes. This eliminates C-compiler warnings.
11.0.6 (2020-01-23)
- Switched to OPAM file generation via
dune-project
- Added missing autogenerated dependencies to
dune
file to avoid build system race conditions.
11.0.5 (2019-10-11)
- Fixed warnings in C-stubs
11.0.4 (2019-05-21)
- Fixed an API misspecification in
ptsv
, which leads to incorrect results.
Thanks to Nicolas Ratier nicolas.ratier@femto-st.fr for the bug report.
11.0.3 (2018-12-31)
- Fixed a portability bug in (complex)
dotu
anddotc
due to BLAS API incompatibilities between different platforms.
11.0.2 (2018-10-24)
- Switched to dune, dune-release, and OPAM 2.0
11.0.1 (2018-05-23)
- Fixed warnings and errors in configuration code due to upstream changes.
- Fixed bug in Vec.ssqr.
11.0.0 (2018-02-28)
WARNING:
User code changes in existing code required. User code may still compile, but can behave differently.
The following functions have changed:
potrf
potri
potrs
The above functions now do not support the
jitter
argument anymore. Users should remove the flag from calls to the above functions and call the newMat.add_const_diag
function if they need to add jitter. This call should happen right before the (now required) call topotrf
.More importantly,
potri
andpotrs
now do not support thefactorize
flag anymore, which would callpotrf
automatically beforehand. This was the (ill-conceived) default, which makes it harder to port LAPACK code to Lacaml. To upgrade your code, please do the following:- If
potri
orpotrs
received~factorize:false
, remove the flag. - If
potri
orpotrs
received~factorize:true
or did not receive thefactorize
flag, remove the flag if necessary and callpotrf
with the corresponding arguments used before.
Usage of these functions is infrequent, and the changes are trivial. Apologies for the churn.
New functions
Mat.add_const_diag
for adding a constant to the diagonal of a (sub-)matrix.
orgqr
now detects ifm < n
and raises an exception instead of printing a Fortran error message and continuing.- Eigenvalue offsets should work now.
- Improved documentation.
10.0.2 (2017-11-08)
- Fixed bugs accessing lower pentagonal matrix patterns
- Fixed library override issue on Mac OS X
10.0.1 (2017-10-21)
- Fixed wrongly capitalized build targets missed due to Mac OS X file system case insensitivity.
10.0.0 (2017-10-20)
- Switched to jbuilder and topkg
API changes
trmm
andtrsm
now do not label argumenta
anymore- Some matrix functions now support an optional
patt
argument for specifying rectangular, triagonal, trapezoidal, and pentagonal patterns on which to perform an operation. New functions
Mat.sum_prod
computes the sum of element-wise products of two matrices. Some use cases are already covered byMat.gemm_trace
, but the latter does not support patterns.
- Improved C-code to better support SIMD compiler optimizations
- Internal improvements, including untagged and unboxed passing of parameters to and from external functions.
- Compilation now uses
-march=native -O3 -ffast-math
by default, which should be safe and exploit SIMD on platforms that support it to greatly improve performance of some operations. - Improved documentation
- Improved configuration and build process