Migration from v0.17 to v0.18
faer v0.18
comes with a refactor of the code base into a more scalable form and to better improve the user experience with the docs.rs documentation.
The changes affect mostly the low level APIs. These include:
- Merging
faer-core
,faer-cholesky
,faer-lu
,faer-qr
,faer-svd
,faer-evd
,faer-sparse
intofaer
. Those crates are now deprecated and will no longer be updated, so switching to depending onfaer
directly is recommended. - Low level matrix multiplication moved from
faer_core::mul
tofaer::linalg::matmul
. - Low level triangular matrix solve moved from
faer_core::solve
tofaer::linalg::triangular_solve
. - Low level triangular matrix inverse moved from
faer_core::inverse
tofaer::linalg::triangular_inverse
. - Low level Cholesky implementation moved from
faer_cholesky
tofaer::linalg::cholesky
. - Sparse API moved from
faer_core::sparse
tofaer::sparse
. - Low level LU implementation moved from
faer_lu
tofaer::linalg::lu
. - Low level QR implementation moved from
faer_qr
tofaer::linalg::qr
. - Low level SVD implementation moved from
faer_svd
tofaer::linalg::svd
. - Low level EVD implementation moved from
faer_evd
tofaer::linalg::evd
. - Low level sparse decompositions moved from
faer_sparse
tofaer::sparse::linalg
. - High level dense solvers moved from
faer::solvers
tofaer::linalg::solvers
. - High level sparse solvers moved from
faer::sparse::solvers
tofaer::sparse::linalg::solvers
.
For an easier transition, deprecated aliases were placed in faer::modules::{core,cholesky,lu,qr,svd,evd,sparse}
that emulate the corresponding old versions of the low level crates to some extent, but they will be removed in a future version.