28 #ifndef pddgeom_OctTreeOps_hpp
29 #define pddgeom_OctTreeOps_hpp
33 #include <util/Parallel.hpp>
34 #include <util/OctTree.hpp>
53 :
IdentProc( rhs ), part( rhs.part ) { Copy<6>( box , rhs.box ); }
57 IdentProc::operator =( rhs );
59 Copy<6>( box , rhs.box );
71 ParallelMachine arg_comm ,
72 const unsigned arg_domain_boxes_number ,
74 const unsigned arg_range_boxes_number ,
76 float *
const arg_global_box );
102 ParallelMachine arg_comm ,
103 const float *
const arg_global_box ,
104 const unsigned arg_domain_boxes_number ,
106 const unsigned arg_range_boxes_number ,
108 const OctTreeKey *
const arg_cuts ,
109 std::vector< std::pair<IdentProc,IdentProc> > & arg_relation ,
110 unsigned *
const arg_search_tree_stats = NULL );
121 const float *
const small_box ,
122 OctTreeKey *
const covering ,
131 ParallelMachine comm ,
132 const unsigned length ,
133 const OctTreeKey *
const keys ,
134 const float *
const weights ,
135 OctTreeKey *
const cut_keys ,
136 const unsigned override_ncuts = 0 );
146 ParallelMachine comm ,
147 const unsigned length ,
148 const OctTreeKey *
const keys ,
149 const float *
const weights ,
150 OctTreeKey *
const cut_keys );
158 const unsigned p_first ,
159 const unsigned p_end ,
160 const unsigned depth ,
161 const double tolerance ,
162 float *
const weights ,
163 const unsigned cuts_length ,
164 OctTreeKey *
const cuts );
bool oct_tree_proximity_search(ParallelMachine arg_comm, const float *const arg_global_box, const unsigned arg_domain_boxes_number, const IdentProcBox *const arg_domain_boxes, const unsigned arg_range_boxes_number, const IdentProcBox *const arg_range_boxes, const OctTreeKey *const arg_cuts, std::vector< std::pair< IdentProc, IdentProc > > &arg_relation, unsigned *const arg_search_tree_stats=NULL)
void box_global_bounds(ParallelMachine arg_comm, const unsigned arg_domain_boxes_number, const IdentProcBox *const arg_domain_boxes, const unsigned arg_range_boxes_number, const IdentProcBox *const arg_range_boxes, float *const arg_global_box)
bool hsfc_box_covering(const float *const global_box, const float *const small_box, OctTreeKey *const covering, unsigned &number)
void oct_tree_partition_course(ParallelMachine comm, const unsigned length, const OctTreeKey *const keys, const float *const weights, OctTreeKey *const cut_keys, const unsigned override_ncuts=0)
void oct_tree_partition_fine(ParallelMachine comm, const unsigned length, const OctTreeKey *const keys, const float *const weights, OctTreeKey *const cut_keys)
void oct_tree_partition_private(const unsigned p_first, const unsigned p_end, const unsigned depth, const double tolerance, float *const weights, const unsigned cuts_length, OctTreeKey *const cuts)