Skip to content

Releases: htool-ddm/htool

Release v1.0.2

14 Feb 16:16

Choose a tag to compare

Fixed

  • Fix execution header include, PR #77
  • Fix wrong ordering of eigenvalues in solve_EVP_3 in some specific cases, PR #76

Release v1.0.1

02 Jan 12:15

Choose a tag to compare

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

12 Jan 10:35

Choose a tag to compare

This release is based on v1.0.0 and includes the final, reviewed JOSS paper.

Release v1.0.0

02 Jan 13:29

Choose a tag to compare

Added

  • HMatrix recompression with SVD.
  • Generic recompressed low-rank compression with RecompressedLowRankGenerator.
  • Checks about UPLO for hmatrix factorization.
  • HMatrixBuilder for easier HMatrix creation (especially when using only the HMatrix component of Htool-DDM).
  • add_hmatrix_vector_product and add_hmatrix_matrix_product for working in user numbering.
  • For C++17 and onward, interfaces supporting execution policies (default being sequential execution) has been added for these functions:
    • HMatrixTreeBuilder::build
    • add_hmatrix_matrix_product
    • add_hmatrix_vector_product
    • lu_factorization
    • cholesky_factorization
  • Mocking execution policies have been added when compiler does not define std::execution. See exec_compat.
  • task_dependencies.hpp for miscellaneous functions used for task based approach.
  • hmatrix_output_dot.hpp for L0 and block tree visualization.
  • Task based parallelism support has been added via
    • HMatrixTreeBuilder::task_based_build for task based assembly.
    • task_based_internal_add_hmatrix_vector_product for task based alternative to {sequential,openmp}_internal_add_hmatrix_vector_product.
    • task_based_internal_add_hmatrix_hmatrix_product for task based alternative to {sequential,openmp}_internal_add_hmatrix_hmatrix_product.
    • task_based_internal_triangular_hmatrix_hmatrix_solve for task based alternative to internal_triangular_hmatrix_hmatrix_solve.
    • task_based_lu_factorization and task_based_cholesky_factorization for task based alternatives to {sequential,openmp}_lu_factorization and {sequential,openmp}_cholesky_factorization.
    • test_task_based_hmatrix_*.hpp for testing various task based features.
  • internal_add_lrmat_hmatrix is now overloaded to handle the case where the HMatrix is larger than the LowRankMatrix.
  • get_leaves_from is overloaded to return non const arguments.
  • get_false_positive in a tree builder.
  • left_hmatrix_ancestor_of_right_hmatrix and left_hmatrix_descendant_of_right_hmatrix for returning parent and children of a hmatrix.
  • Partition_N is an alternative to Partition for 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

  • VirtualInternalLowRankGenerator and VirtualLowRankGenerator's copy_low_rank_approximation function takes a LowRankMatrix as input to populate it and returns a boolean. The return value is true if the compression succeded, false otherwise.
  • LowRankMatrix constructors changed. It only takes sizes and an epsilon or a required rank. Then, it is expected to call a VirtualInternalLowRankGenerator to populate it.
  • ClusterTreeBuilder has now one strategy as VirtualPartitioning. Usual implementations are still available, for example using Partitioning<double,ComputeLargestExtent,RegularSplitting>.
  • ClusterTreeBuilder parameter minclustersize was removed, and a parameter maximal_leaf_size has been added.
  • DistributedOperator supports now both "global-to-local" and "local-to-local" operators, using respectively VirtualGlobalToLocalOperator and VirtualLocalToLocalOperator interfaces. The linear algebra associated has been updated to follow a more Blas-like interface.
  • MatrixView has been added to ease the use of matrix product. Most public functions for matrix products have also new template arguments to accept, Matrix, MatrixView or 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 int instead of size_t, thanks to @vdubos.
  • Fix warnings with -Wold-style-cast.