Cyclops v1.5.2
This release introduces new functionality and interface changes. The changes are consequential to performance, especially for sparse tensors and non-standard element types.
- data is now stored, accepted, and returned as an array of objects (i.e. created by new rather than malloc),
read_local
remains as before (memory should be released by free), but new routines have been introduced:get_local_data
andget_local_pairs
, which return data that should be released withdelete
- as consequence of (1), more general object types are now supported for sequential execution
- via (2) it is now possible to leverage block sparsity, by defining a sparse tensor on
MPI_COMM_SELF
whose elements are dense tensors onMPI_COMM_WORLD
(or any desired communicator), which yields bulk-synchronous execution of each block contraction and a memory-efficient block-sparse layout (seeexamples/block_sparse.cxx
) - QR and SVD are now available in C++ and Python, supporting real/complex in single/double precision
- the build system has been improved to fix bugs and improve robustness