Lines Matching refs:kd_build

138 static PetscErrorCode PetscKDTreeBuildStemAndLeaves(KDTreeBuild kd_build, PetscCount sorted_indices…  in PetscKDTreeBuildStemAndLeaves()  argument
140 PetscKDTree tree = kd_build->tree; in PetscKDTreeBuildStemAndLeaves()
145 …if (kd_build->debug_build) PetscCall(PetscKDTreeVerifySortedIndices(tree, sorted_indices, temp, st… in PetscKDTreeBuildStemAndLeaves()
150 PetscCall(PetscSegBufferGetSize(kd_build->leaves, node_handle)); in PetscKDTreeBuildStemAndLeaves()
151 PetscCall(PetscSegBufferGet(kd_build->leaves, 1, &leaf)); in PetscKDTreeBuildStemAndLeaves()
156 PetscCall(PetscSegBufferGetSize(kd_build->bucket_indices, &leaf->indices_handle)); in PetscKDTreeBuildStemAndLeaves()
157 PetscCall(PetscSegBufferGet(kd_build->bucket_indices, leaf->count, &bucket_indices)); in PetscKDTreeBuildStemAndLeaves()
159 if (kd_build->copy_coords) { in PetscKDTreeBuildStemAndLeaves()
161 PetscCall(PetscSegBufferGetSize(kd_build->bucket_coords, &leaf->coords_handle)); in PetscKDTreeBuildStemAndLeaves()
162 PetscCall(PetscSegBufferGet(kd_build->bucket_coords, leaf->count * dim, &bucket_coords)); in PetscKDTreeBuildStemAndLeaves()
176 PetscCall(PetscSegBufferGetSize(kd_build->stems, node_handle)); in PetscKDTreeBuildStemAndLeaves()
177 PetscCall(PetscSegBufferGet(kd_build->stems, 1, &stem)); in PetscKDTreeBuildStemAndLeaves()
202 …PetscCall(PetscKDTreeBuildStemAndLeaves(kd_build, sorted_indices, temp, start, lower + 1, depth + … in PetscKDTreeBuildStemAndLeaves()
204 …PetscCall(PetscKDTreeBuildStemAndLeaves(kd_build, sorted_indices, temp, lower + 1, end, depth + 1,… in PetscKDTreeBuildStemAndLeaves()
283 KDTreeBuild kd_build; in PetscKDTreeCreate() local
284 PetscCall(PetscNew(&kd_build)); in PetscKDTreeCreate()
285 kd_build->tree = tree; in PetscKDTreeCreate()
286 kd_build->copy_coords = copy_mode == PETSC_COPY_VALUES ? PETSC_TRUE : PETSC_FALSE; in PetscKDTreeCreate()
287 PetscCall(PetscOptionsGetBool(NULL, NULL, "-kdtree_debug", &kd_build->debug_build, NULL)); in PetscKDTreeCreate()
288 PetscCall(PetscSegBufferCreate(sizeof(KDStem), num_stems, &kd_build->stems)); in PetscKDTreeCreate()
289 PetscCall(PetscSegBufferCreate(sizeof(KDLeaf), num_leaves, &kd_build->leaves)); in PetscKDTreeCreate()
290 PetscCall(PetscSegBufferCreate(sizeof(PetscCount), num_coords, &kd_build->bucket_indices)); in PetscKDTreeCreate()
291 …if (kd_build->copy_coords) PetscCall(PetscSegBufferCreate(sizeof(PetscReal), num_coords * dim, &kd… in PetscKDTreeCreate()
293 …PetscCall(PetscKDTreeBuildStemAndLeaves(kd_build, sorted_indices, temp, 0, num_coords, 0, &tree->i… in PetscKDTreeCreate()
295 PetscCall(PetscSegBufferGetSize(kd_build->stems, &tree->num_stems)); in PetscKDTreeCreate()
296 PetscCall(PetscSegBufferGetSize(kd_build->leaves, &tree->num_leaves)); in PetscKDTreeCreate()
297 PetscCall(PetscSegBufferGetSize(kd_build->bucket_indices, &tree->num_bucket_indices)); in PetscKDTreeCreate()
298 PetscCall(PetscSegBufferExtractAlloc(kd_build->stems, &tree->stems)); in PetscKDTreeCreate()
299 PetscCall(PetscSegBufferExtractAlloc(kd_build->leaves, &tree->leaves)); in PetscKDTreeCreate()
300 PetscCall(PetscSegBufferExtractAlloc(kd_build->bucket_indices, &tree->bucket_indices)); in PetscKDTreeCreate()
301 if (kd_build->copy_coords) { in PetscKDTreeCreate()
303 PetscCall(PetscSegBufferExtractAlloc(kd_build->bucket_coords, &tree->coords_owned)); in PetscKDTreeCreate()
305 PetscCall(PetscSegBufferDestroy(&kd_build->bucket_coords)); in PetscKDTreeCreate()
307 PetscCall(PetscSegBufferDestroy(&kd_build->stems)); in PetscKDTreeCreate()
308 PetscCall(PetscSegBufferDestroy(&kd_build->leaves)); in PetscKDTreeCreate()
309 PetscCall(PetscSegBufferDestroy(&kd_build->bucket_indices)); in PetscKDTreeCreate()
310 PetscCall(PetscFree(kd_build)); in PetscKDTreeCreate()