Releases: htool-ddm/htool
Releases · htool-ddm/htool
Release v1.0.2
Release v1.0.1
Fixed
- Fix wrong boolean tests in triangular_matrix_matrix_solve, PR #75 from @ABoisneault
- Avoid empty-sized gemv, PR #64 from @prj-
Release v1.0.0-joss-paper
This release is based on v1.0.0 and includes the final, reviewed JOSS paper.
Release v1.0.0
Added
HMatrixrecompression with SVD.- Generic recompressed low-rank compression with
RecompressedLowRankGenerator. - Checks about
UPLOfor hmatrix factorization. HMatrixBuilderfor easierHMatrixcreation (especially when using only theHMatrixcomponent of Htool-DDM).add_hmatrix_vector_productandadd_hmatrix_matrix_productfor working in user numbering.- For C++17 and onward, interfaces supporting execution policies (default being sequential execution) has been added for these functions:
HMatrixTreeBuilder::buildadd_hmatrix_matrix_productadd_hmatrix_vector_productlu_factorizationcholesky_factorization
- Mocking execution policies have been added when compiler does not define
std::execution. Seeexec_compat. task_dependencies.hppfor miscellaneous functions used for task based approach.hmatrix_output_dot.hppfor L0 and block tree visualization.- Task based parallelism support has been added via
HMatrixTreeBuilder::task_based_buildfor task based assembly.task_based_internal_add_hmatrix_vector_productfor task based alternative to{sequential,openmp}_internal_add_hmatrix_vector_product.task_based_internal_add_hmatrix_hmatrix_productfor task based alternative to{sequential,openmp}_internal_add_hmatrix_hmatrix_product.task_based_internal_triangular_hmatrix_hmatrix_solvefor task based alternative tointernal_triangular_hmatrix_hmatrix_solve.task_based_lu_factorizationandtask_based_cholesky_factorizationfor task based alternatives to{sequential,openmp}_lu_factorizationand{sequential,openmp}_cholesky_factorization.test_task_based_hmatrix_*.hppfor testing various task based features.
internal_add_lrmat_hmatrixis now overloaded to handle the case where the HMatrix is larger than the LowRankMatrix.get_leaves_fromis overloaded to return non const arguments.get_false_positivein a tree builder.left_hmatrix_ancestor_of_right_hmatrixandleft_hmatrix_descendant_of_right_hmatrixfor returning parent and children of a hmatrix.Partition_Nis an alternative toPartitionfor defining the partition of a cluster. The latter only splits along the principal axis of the cluster, while the former tries to be smarter.
Changed
VirtualInternalLowRankGeneratorandVirtualLowRankGenerator'scopy_low_rank_approximationfunction takes aLowRankMatrixas input to populate it and returns a boolean. The return value is true if the compression succeded, false otherwise.LowRankMatrixconstructors changed. It only takes sizes and an epsilon or a required rank. Then, it is expected to call aVirtualInternalLowRankGeneratorto populate it.ClusterTreeBuilderhas now one strategy asVirtualPartitioning. Usual implementations are still available, for example usingPartitioning<double,ComputeLargestExtent,RegularSplitting>.ClusterTreeBuilderparameterminclustersizewas removed, and a parametermaximal_leaf_sizehas been added.DistributedOperatorsupports now both "global-to-local" and "local-to-local" operators, using respectivelyVirtualGlobalToLocalOperatorandVirtualLocalToLocalOperatorinterfaces. The linear algebra associated has been updated to follow a more Blas-like interface.MatrixViewhas been added to ease the use of matrix product. Most public functions for matrix products have also new template arguments to accept,Matrix,MatrixViewor any other type following the same interface.
Fixed
- Fix inline definition of
logging_level_to_string. - Fix error when resizing
Matrix. - Fix error due to using
intinstead ofsize_t, thanks to @vdubos. - Fix warnings with
-Wold-style-cast.