- Fix #28: incorrect output when
out
is provided but the matrix multiplication is trivially all zeros - Added scipy sparse classes where MKL is used for matrix multiplication
- Add wrapper for MKL iterative CG and FGMRES solvers in
sparse_dot.solvers
- Add wrapper for MKL pardiso solver in
sparse_dot.solvers
- Replace deprecated scipy
spmatrix.A
calls withspmatrix.todense()
- Directly expose service functions
mkl_get_max_threads
,mkl_set_num_threads
,mkl_set_num_threads_local
,mkl_get_version
, andmkl_get_version_string
.
- Explicit check for interface env MKL_INTERFACE_LAYER and interface selection in python. Will raise a RuntimeWarning if ILP64 is requested but the 64-bit interface layer is unavailable. Note that the MKL_INTERFACE_LAYER env must be set before this package is imported.
- Support for
out
parameter with sparse-sparse multiplication whendense=True
- Support for scipy sparse arrays (introduced in scipy 1.11)
- Additional fallback support for finding mkl DLLs with OneAPI
- Explicit error message when complex data is put into the QR solver
- Fix edge condition memory leak in the QR solver
- Corrected ImportError on windows with oneMKL by explicitly library searching for mkl_rt.{i}.dll, where i is between 1 and 5. That should last till 2026.
cast=True
will now cast to compatible complex floats if one array is complex and one is real
- Added support for complex data types
- Refactored _mkl_interface.py into a subpackage
- Fixed a memory leak when a CSC matrix was multiplied by a dense matrix in column-major format
- Switched continuous integration from Travis to Github Actions
- Corrected ImportError on windows with oneMKL by explicitly library searching for mkl_rt.1.dll
- Switched test runner from nose to pytest
- Fixed a bug in sparse * dense multiplication when one of the output array dimensions is 1
- Added support for block sparse row (BSR) format matrices
- Added
sparse_dot_mkl.set_debug_mode(True)
as a module-level debug mode flag instead of calling debug mode fromdot_product_mkl
. Added a number of debug messages for troubleshooting during development.
- Added an
out
parameter that will add a matrix multiplication to an already-allocated dense array
- Updated error message for a specific sparse product multiplication failure
- Fixed a bug that was hanging MKL threads if scikit-learn was imported prior to sparse_dot_mkl and mkl functions were run from a child process
- Fixed a bug that was not searching $LD_LIBRARY_PATH for
mkl_rt
- Clarified several error messages
- Added gram_matrix_mkl to access mkl_sparse_syrk
- Fixed a bug that was not correctly multiplying vectors for outer products
- Added sparse_qr_solve_mkl to access the MKL QR solver
- Added support for vector (dot) sparse matrix through mkl_sparse_d_mv
- Added support for sparse matrix (dot) vector through mkl_sparse_d_mv
- Added tests to raise python error when matrix indices overflow MKL interface type
- Refactored _sparse_dense.py for efficiency and readability
- Fixed windows library dll name
- Fixed incorrect return type in certain rare cases
- Full support for numpy arrays in row-major and column-major format