Skip to content

Commit

Permalink
fixup
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreMarchand20 committed May 28, 2024
1 parent ef23a31 commit ca30d2b
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 16 deletions.
2 changes: 2 additions & 0 deletions include/htool/hmatrix/linalg/add_hmatrix_hmatrix_product.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
#include "../lrmat/linalg/add_lrmat_lrmat_product.hpp"
#include "../lrmat/linalg/add_matrix_lrmat_product.hpp"
#include "../lrmat/linalg/add_matrix_matrix_product.hpp"
#include "./add_hmatrix_lrmat_product.hpp"
#include "./add_lrmat_hmatrix_product.hpp"
#include "scale.hpp"

namespace htool {
Expand Down
21 changes: 10 additions & 11 deletions include/htool/hmatrix/linalg/factorization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#include "../../matrix/linalg/factorization.hpp"
#include "add_hmatrix_hmatrix_product.hpp"
#include "rank_k_update.hpp"
#include "triangular_hmatrix_hmatrix_solve.hpp"

namespace htool {
Expand Down Expand Up @@ -120,19 +119,19 @@ void cholesky_factorization(char UPLO, HMatrix<CoefficientPrecision, CoordinateP
HMatrix<CoefficientPrecision, CoordinatePrecision> *A_child = hmatrix.get_sub_hmatrix(*output_cluster_child, *input_cluster_child);
const HMatrix<CoefficientPrecision, CoordinatePrecision> *L = hmatrix.get_sub_hmatrix(*output_cluster_child, *cluster_child);

if (*output_cluster_child == *input_cluster_child) {
symmetric_rank_k_update(UPLO, 'N', CoefficientPrecision(-1), *L, CoefficientPrecision(1), *A_child);
} else {
add_hmatrix_hmatrix_product('N', 'C', CoefficientPrecision(-1), *L, *L, CoefficientPrecision(1), *A_child);
}
// if (*output_cluster_child == *input_cluster_child) {
// symmetric_rank_k_update(UPLO, 'N', CoefficientPrecision(-1), *L, CoefficientPrecision(1), *A_child);
// } else {
add_hmatrix_hmatrix_product('N', 'C', CoefficientPrecision(-1), *L, *L, CoefficientPrecision(1), *A_child);
// }
} else if (UPLO == 'U' && output_cluster_child->get_offset() > cluster_child->get_offset() && input_cluster_child->get_offset() > cluster_child->get_offset() && input_cluster_child->get_offset() >= output_cluster_child->get_offset()) {
HMatrix<CoefficientPrecision, CoordinatePrecision> *A_child = hmatrix.get_sub_hmatrix(*output_cluster_child, *input_cluster_child);
const HMatrix<CoefficientPrecision, CoordinatePrecision> *U = hmatrix.get_sub_hmatrix(*cluster_child, *input_cluster_child);
if (*output_cluster_child == *input_cluster_child) {
symmetric_rank_k_update(UPLO, 'C', CoefficientPrecision(-1), *U, CoefficientPrecision(1), *A_child);
} else {
add_hmatrix_hmatrix_product('C', 'N', CoefficientPrecision(-1), *U, *U, CoefficientPrecision(1), *A_child);
}
// if (*output_cluster_child == *input_cluster_child) {
// symmetric_rank_k_update(UPLO, 'C', CoefficientPrecision(-1), *U, CoefficientPrecision(1), *A_child);
// } else {
add_hmatrix_hmatrix_product('C', 'N', CoefficientPrecision(-1), *U, *U, CoefficientPrecision(1), *A_child);
// }
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "../../matrix/linalg/factorization.hpp"
#include "../hmatrix.hpp"
#include "./triangular_hmatrix_lrmat_solve.hpp"

namespace htool {
template <typename CoefficientPrecision, typename CoordinatePrecision>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "../../matrix/linalg/factorization.hpp"
#include "../hmatrix.hpp"
#include "./add_hmatrix_matrix_product_row_major.hpp"

// -------------------------------------------------------------------
// --- Reversed iterable
Expand Down
10 changes: 5 additions & 5 deletions include/htool/hmatrix/tree_builder/tree_builder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ bool HMatrixTreeBuilder<CoefficientPrecision, CoordinatePrecision>::build_block_
}

// All sons are non admissible and not pushed to tasks -> the current block is not pushed
if ((block_size <= m_maxblocksize)
if (false && (block_size <= m_maxblocksize)
&& std::all_of(Blocks_not_pushed.begin(), Blocks_not_pushed.end(), [](bool i) { return i; })
&& is_target_cluster_in_target_partition(target_cluster)
&& target_cluster.get_depth() >= m_mintargetdepth
Expand Down Expand Up @@ -264,7 +264,7 @@ bool HMatrixTreeBuilder<CoefficientPrecision, CoordinatePrecision>::build_block_
}
}

if ((block_size <= m_maxblocksize)
if (false && (block_size <= m_maxblocksize)
&& std::all_of(Blocks_not_pushed.begin(), Blocks_not_pushed.end(), [](bool i) { return i; })
&& is_target_cluster_in_target_partition(target_cluster)
&& target_cluster.get_depth() >= m_mintargetdepth
Expand Down Expand Up @@ -296,7 +296,7 @@ bool HMatrixTreeBuilder<CoefficientPrecision, CoordinatePrecision>::build_block_
Blocks_not_pushed.push_back(build_block_tree(child_blocks.back()));
}
}
if ((block_size <= m_maxblocksize)
if (false && (block_size <= m_maxblocksize)
&& std::all_of(Blocks_not_pushed.begin(), Blocks_not_pushed.end(), [](bool i) { return i; })
&& is_target_cluster_in_target_partition(target_cluster)
&& target_cluster.get_depth() >= m_mintargetdepth
Expand Down Expand Up @@ -327,7 +327,7 @@ bool HMatrixTreeBuilder<CoefficientPrecision, CoordinatePrecision>::build_block_
Blocks_not_pushed.push_back(build_block_tree(child_blocks.back()));
}
}
if ((block_size <= m_maxblocksize)
if (false && (block_size <= m_maxblocksize)
&& std::all_of(Blocks_not_pushed.begin(), Blocks_not_pushed.end(), [](bool i) { return i; })
&& is_target_cluster_in_target_partition(target_cluster)
&& target_cluster.get_depth() >= m_mintargetdepth
Expand Down Expand Up @@ -360,7 +360,7 @@ bool HMatrixTreeBuilder<CoefficientPrecision, CoordinatePrecision>::build_block_
}
}
}
if ((block_size <= m_maxblocksize)
if (false && (block_size <= m_maxblocksize)
&& std::all_of(Blocks_not_pushed.begin(), Blocks_not_pushed.end(), [](bool i) { return i; })
&& is_target_cluster_in_target_partition(target_cluster)
&& target_cluster.get_depth() >= m_mintargetdepth
Expand Down

0 comments on commit ca30d2b

Please sign in to comment.