Page
Library
Module
Module type
Parameter
Class
Class type
Source
Fixed a bug in the bytecode bindings for lamch
, which also affected syevr
. 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!
dotu
and dotc
calling conventions.Removed package dependencies on stdio
and base
. 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!
dune-project
dune
file to avoid build system race conditions.ptsv
, which leads to incorrect results.Thanks to Nicolas Ratier nicolas.ratier@femto-st.fr for the bug report!
dotu
and dotc
due to BLAS API incompatibilities between different platforms.WARNINIG WARNING WARNING
User code changes in existing code required! User code may still compile, but can behave differently!
The following functions are affected:
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 new Mat.add_const_diag
function if they need to add jitter. This call should happen right before the (now required) call to potrf
.
More importantly, potri
and potrs
now do not support the factorize
flag anymore, which would call potrf
automatically beforehand. This was the (ill-conceived) default, which makes it harder to port LAPACK code to Lacaml. In order to upgrade your code, please do the following:
potri
or potrs
were passed ~factorize:false
, just remove the flag.potri
or potrs
were passed ~factorize:true
or were called without the factorize
flag, remove the flag if necessary and call potrf
with the exactly corresponding arguments before.Luckily, these functions are typically used rarely, and the changes are trivial. Apologies anyway for the churn!
New functions
Mat.add_const_diag
for adding a constant to the diagonal of a (sub-)matrix.orgqr
now detects if m < n
and raises an exception instead of printing a Fortran error message and continuing.API changes
trmm
and trsm
now do not label argument a
anymorepatt
argument, which can be used to specify 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 by Mat.gemm_trace
, but the latter does not support patterns.-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.