#include "cs_defs.h"
#include <assert.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "bft_mem.h"
#include "bft_printf.h"
#include "fvm_morton.h"
Functions | |
void | fvm_morton_get_coord_extents (int dim, size_t n_coords, const cs_coord_t coords[], cs_coord_t g_extents[]) |
void | fvm_morton_get_global_extents (int dim, size_t n_extents, const cs_coord_t extents[], cs_coord_t g_extents[]) |
fvm_morton_code_t | fvm_morton_encode (int dim, fvm_morton_int_t level, const cs_coord_t coords[]) |
void | fvm_morton_encode_coords (int dim, fvm_morton_int_t level, const cs_coord_t extents[], size_t n_coords, const cs_coord_t coords[], fvm_morton_code_t m_code[]) |
void | fvm_morton_get_children (int dim, fvm_morton_code_t parent, fvm_morton_code_t children[]) |
void | fvm_morton_local_order (cs_lnum_t n_codes, const fvm_morton_code_t morton_codes[], cs_lnum_t order[]) |
void | fvm_morton_local_sort (cs_lnum_t n_codes, fvm_morton_code_t morton_codes[]) |
fvm_morton_compare_t | fvm_morton_compare (int dim, fvm_morton_code_t code_a, fvm_morton_code_t code_b) |
bool | fvm_morton_a_gt_b (fvm_morton_code_t a, fvm_morton_code_t b) |
bool | fvm_morton_a_ge_b (fvm_morton_code_t a, fvm_morton_code_t b) |
int | fvm_morton_binary_search (cs_lnum_t size, fvm_morton_code_t code, fvm_morton_code_t *codes) |
void | fvm_morton_s_to_code (double s, void *elt, const void *input) |
Function pointer for conversion of a double precision value in range [0, 1] to a given Morton code. More... | |
int | fvm_morton_compare_o (const void *elt1, const void *elt2, const void *input) |
Function pointer for comparison of 2 Morton codes. More... | |
void | fvm_morton_dump (int dim, fvm_morton_code_t code) |
bool fvm_morton_a_ge_b | ( | fvm_morton_code_t | a, |
fvm_morton_code_t | b | ||
) |
bool fvm_morton_a_gt_b | ( | fvm_morton_code_t | a, |
fvm_morton_code_t | b | ||
) |
int fvm_morton_binary_search | ( | cs_lnum_t | size, |
fvm_morton_code_t | code, | ||
fvm_morton_code_t * | codes | ||
) |
fvm_morton_compare_t fvm_morton_compare | ( | int | dim, |
fvm_morton_code_t | code_a, | ||
fvm_morton_code_t | code_b | ||
) |
int fvm_morton_compare_o | ( | const void * | elt1, |
const void * | elt2, | ||
const void * | input | ||
) |
Function pointer for comparison of 2 Morton codes.
This function is the same type as that used by qsort_r.
[in] | elt1 | coordinate between 0 and 1 |
[in] | elt2 | pointer to optional (untyped) value or structure. |
[in] | input | pointer to optional (untyped) value or structure. |
void fvm_morton_dump | ( | int | dim, |
fvm_morton_code_t | code | ||
) |
fvm_morton_code_t fvm_morton_encode | ( | int | dim, |
fvm_morton_int_t | level, | ||
const cs_coord_t | coords[] | ||
) |
void fvm_morton_encode_coords | ( | int | dim, |
fvm_morton_int_t | level, | ||
const cs_coord_t | extents[], | ||
size_t | n_coords, | ||
const cs_coord_t | coords[], | ||
fvm_morton_code_t | m_code[] | ||
) |
void fvm_morton_get_children | ( | int | dim, |
fvm_morton_code_t | parent, | ||
fvm_morton_code_t | children[] | ||
) |
void fvm_morton_get_coord_extents | ( | int | dim, |
size_t | n_coords, | ||
const cs_coord_t | coords[], | ||
cs_coord_t | g_extents[] | ||
) |
void fvm_morton_get_global_extents | ( | int | dim, |
size_t | n_extents, | ||
const cs_coord_t | extents[], | ||
cs_coord_t | g_extents[] | ||
) |
void fvm_morton_local_order | ( | cs_lnum_t | n_codes, |
const fvm_morton_code_t | morton_codes[], | ||
cs_lnum_t | order[] | ||
) |
void fvm_morton_local_sort | ( | cs_lnum_t | n_codes, |
fvm_morton_code_t | morton_codes[] | ||
) |
void fvm_morton_s_to_code | ( | double | s, |
void * | elt, | ||
const void * | input | ||
) |
Function pointer for conversion of a double precision value in range [0, 1] to a given Morton code.
[in] | s | coordinate between 0 and 1 |
[out] | elt | pointer to element |
[in] | input | pointer to optional (untyped) value or structure; here, this is an interger representing the spatial dimension. |