@@ -14,13 +14,13 @@ class HMatrixBuilder {
1414 Cluster<CoordinatesPrecision> target_cluster;
1515 std::unique_ptr<Cluster<CoordinatesPrecision>> source_cluster_ptr = nullptr ; // use an optional source cluster
1616
17- HMatrixBuilder(int target_number_of_points, int target_spatial_dimension, const CoordinatesPrecision *target_coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *target_cluster_tree_builder, int source_number_of_points, int source_spatial_dimension, const CoordinatesPrecision *source_coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *source_cluster_tree_builder) : target_cluster(target_cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(target_number_of_points, target_spatial_dimension, target_coordinates, std::pow(2, target_spatial_dimension), std::pow(2, source_spatial_dimension)) : target_cluster_tree_builder->create_cluster_tree(target_number_of_points, target_spatial_dimension, target_coordinates, 2, 2)), source_cluster_ptr(std::make_unique<Cluster<CoordinatesPrecision>>(source_cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(source_number_of_points, source_spatial_dimension, source_coordinates, std::pow(2, target_spatial_dimension), std::pow(2, source_spatial_dimension)) : source_cluster_tree_builder->create_cluster_tree(source_number_of_points, source_spatial_dimension, source_coordinates, std::pow(2, target_spatial_dimension), std::pow(2, source_spatial_dimension)))) {
17+ HMatrixBuilder(int target_number_of_points, int target_spatial_dimension, const CoordinatesPrecision *target_coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *target_cluster_tree_builder, int target_number_of_children, int target_number_of_partitions, int source_number_of_points, int source_spatial_dimension, const CoordinatesPrecision *source_coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *source_cluster_tree_builder, int source_number_of_children, int source_number_of_partitions) : target_cluster(target_cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(target_number_of_points, target_spatial_dimension, target_coordinates, target_number_of_children, target_number_of_partitions) : target_cluster_tree_builder->create_cluster_tree(target_number_of_points, target_spatial_dimension, target_coordinates, target_number_of_children, target_number_of_partitions)), source_cluster_ptr(std::make_unique<Cluster<CoordinatesPrecision>>(source_cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(source_number_of_points, source_spatial_dimension, source_coordinates, source_number_of_children, source_number_of_partitions) : source_cluster_tree_builder->create_cluster_tree(source_number_of_points, source_spatial_dimension, source_coordinates, source_number_of_children, source_number_of_partitions))) {
1818 }
1919
20- HMatrixBuilder (int target_number_of_points, int target_spatial_dimension, const CoordinatesPrecision *target_coordinates, int source_number_of_points, int source_spatial_dimension, const CoordinatesPrecision *source_coordinates) : HMatrixBuilder(target_number_of_points, target_spatial_dimension, target_coordinates, nullptr , source_number_of_points, source_spatial_dimension, source_coordinates, nullptr ) {
20+ HMatrixBuilder (int target_number_of_points, int target_spatial_dimension, const CoordinatesPrecision *target_coordinates, int source_number_of_points, int source_spatial_dimension, const CoordinatesPrecision *source_coordinates) : HMatrixBuilder(target_number_of_points, target_spatial_dimension, target_coordinates, nullptr , 2 , 2 , source_number_of_points, source_spatial_dimension, source_coordinates, nullptr , 2 , 2 ) {
2121 }
2222
23- HMatrixBuilder (int number_of_points, int spatial_dimension, const CoordinatesPrecision *coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *cluster_tree_builder = nullptr ) : target_cluster(cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(number_of_points, spatial_dimension, coordinates, std::pow( 2 , spatial_dimension), std::pow( 2 , spatial_dimension)) : cluster_tree_builder->create_cluster_tree (number_of_points, spatial_dimension, coordinates, std::pow( 2 , spatial_dimension), std::pow( 2 , spatial_dimension) )) {
23+ HMatrixBuilder (int number_of_points, int spatial_dimension, const CoordinatesPrecision *coordinates, const ClusterTreeBuilder<CoordinatesPrecision> *cluster_tree_builder = nullptr , int number_of_children = 2 , int number_of_partitions = 2 ) : target_cluster(cluster_tree_builder == nullptr ? ClusterTreeBuilder<CoordinatesPrecision>().create_cluster_tree(number_of_points, spatial_dimension, coordinates, number_of_children, number_of_partitions) : cluster_tree_builder->create_cluster_tree (number_of_points, spatial_dimension, coordinates, number_of_children, number_of_partitions )) {
2424 }
2525
2626 template <typename ExecutionPolicy>
0 commit comments