|
programmer's documentation
|
#include "cs_defs.h"#include <stdlib.h>#include <math.h>#include <assert.h>#include <float.h>#include <limits.h>#include <bft_mem.h>#include <bft_printf.h>#include "cs_cdo.h"#include "cs_cdo_toolbox.h"
Functions | |
| static cs_data_info_t | _init_dinfo (cs_datatype_t datatype) |
| Intialize by default a cs_data_info_t structure according to the datatype. More... | |
| static void | _compute_info_double (cs_lnum_t n_elts, const cs_real_t data[], cs_data_info_t *info) |
| Compute simple information about an array of data. >> Algorithm from Mark Hoemmen (U.C. Berkeley) More... | |
| static void | _compute_info_int32 (cs_lnum_t n_elts, const cs_lnum_t data[], cs_data_info_t *info) |
| Compute simple information about an array of data. >> Algorithm from Mark Hoemmen (U.C. Berkeley) More... | |
| double | _dp3 (const cs_real_3_t u, const cs_real_3_t v) |
| Compute a dot product for vector of dimension 3. More... | |
| double | _n3 (const cs_real_3_t v) |
| Compute the euclidean norm of a vector of dimension 3. More... | |
| double | _length3 (const cs_real_3_t xa, const cs_real_3_t xb) |
| Compute the length (euclidien norm) between two points xu and xv in a cartesian coordinate system of dimension 3. More... | |
| void | _lenunit3 (const cs_real_3_t xa, const cs_real_3_t xb, cs_real_t *len, cs_real_3_t *unit) |
| Compute the length (euclidien norm) between two points xu and xv in a cartesian coordinate system of dimension 3. More... | |
| void | _cp3 (const cs_real_3_t u, const cs_real_3_t v, cs_real_3_t *w) |
| Compute the cross product of a vector of dimension 3. More... | |
| void | _mv3 (const cs_real_33_t m, const cs_real_3_t v, cs_real_3_t *mv) |
| Compute the 3x3 matrice by vector product. More... | |
| void | _invmat33 (const cs_real_33_t in, cs_real_33_t *inv) |
| Inverse a 3x3 matrix. More... | |
| double | cs_surftri (const cs_real_3_t xv, const cs_real_3_t xe, const cs_real_3_t xf) |
| Compute the area of the convex_hull generated by 3 points. This corresponds to the computation of the surface of a triangle. More... | |
| double | cs_voltet (const cs_real_3_t xv, const cs_real_3_t xe, const cs_real_3_t xf, const cs_real_3_t xc) |
| Compute the volume of the convex_hull generated by 4 points. This is equivalent to the computation of the volume of a tetrahedron. More... | |
| void | cs_daxpy (int size, double alpha, const cs_real_t x[], cs_real_t beta, const cs_real_t y[], cs_real_t *p_z[], _Bool reset) |
| Compute alpha*x + beta*y = z. More... | |
| double | cs_dp (int size, const double v[], const double w[]) |
| Compute the dot product of two vectors of dimension "size" This algorithm tries to reduce round-off error thanks to intermediate sums. More... | |
| double | cs_euclidean_norm (int len, const double v[]) |
| Compute the euclidean norm 2 of a vector of size len This algorithm tries to reduce round-off error thanks to intermediate sums. More... | |
| double | cs_sum (cs_lnum_t size, const double v[], const double w[], cs_toolbox_type_sum_t op) |
| Compute by default the sum of the elements of an array of double Additional operation are also possible: square, abs This algorithm tries to reduce round-off errors thanks to intermediate sums. More... | |
| void | cs_toolbox_init (cs_lnum_t ref_size) |
| Allocate and initialize a private structure for this file used for reducing round-off errors during summation. More... | |
| void | cs_toolbox_finalize (void) |
| Free a private structure for this file used for reducing round-off errors during summation. More... | |
| void | cs_tmpbuf_alloc (size_t bufsize, cs_tmpbuf_t **p_tb) |
| Allocate or reallocate a temporary buffer structure. More... | |
| cs_tmpbuf_t * | cs_tmpbuf_free (cs_tmpbuf_t *tb) |
| Free a temporary buffer structure. More... | |
| cs_toolbox_locmat_t * | cs_toolbox_locmat_create (int n_max_ent) |
| Allocate and initialize a cs_toolbox_locmat_t structure. More... | |
| void | cs_toolbox_locmat_dump (int parent_id, const cs_toolbox_locmat_t *lm) |
| Dump a local discrete Hodge operator. More... | |
| cs_toolbox_locmat_t * | cs_toolbox_locmat_free (cs_toolbox_locmat_t *lm) |
| Free a cs_toolbox_locmat_t structure. More... | |
| cs_data_info_t | cs_analysis_data (cs_lnum_t n_elts, int stride, cs_datatype_t datatype, const void *indata, _Bool do_abs) |
| Compute some simple statistics from an array. More... | |
| void | cs_data_info_dump (const char *name, FILE *f, cs_lnum_t n_elts, cs_datatype_t datatype, const cs_data_info_t dinfo) |
| Dump a cs_data_info_t structure. More... | |
Variables | |
| static struct _subsum_t | _op_subsum |
| static const double | _tools_oversix = 1/6.0 |
| static const double | _overdim = 1/3.0 |
|
static |
Compute simple information about an array of data. >> Algorithm from Mark Hoemmen (U.C. Berkeley)
| [in] | n_elts | number of couples in data |
| [in] | data | buffer containing input data |
| [in,out] | info | pointer to a cs_data_info_t structure |
|
static |
Compute simple information about an array of data. >> Algorithm from Mark Hoemmen (U.C. Berkeley)
| [in] | n_elts | number of couples in data |
| [in] | data | buffer containing input data |
| [in,out] | info | pointer to a cs_data_info_t structure |
|
inline |
Compute the cross product of a vector of dimension 3.
| [in] | u | first vector |
| [in] | v | second vector |
| [out] | w | result of u x v |
|
inline |
Compute a dot product for vector of dimension 3.
| [in] | u | first vector |
| [in] | v | second vector |
|
static |
Intialize by default a cs_data_info_t structure according to the datatype.
| [in] | datatype |
|
inline |
Inverse a 3x3 matrix.
| [in] | in | matrix to inverse |
| [out] | inv | inversed matrix |
|
inline |
Compute the length (euclidien norm) between two points xu and xv in a cartesian coordinate system of dimension 3.
| [in] | xa | first coordinate |
| [in] | xb | second coordinate |
|
inline |
Compute the length (euclidien norm) between two points xu and xv in a cartesian coordinate system of dimension 3.
| [in] | xa | coordinate of the first extremity |
| [in] | xb | coordinate of the second extremity |
| [out] | len | pointer to the length of the vector va -> vb |
| [out] | unit | unitary vector anlong va -> vb |
|
inline |
Compute the 3x3 matrice by vector product.
| [in] | m | a 3x3 matrix |
| [in] | v | a vector |
| [in,out] | mv | pointer to the vector resulting of the matrix-vector op. |
|
inline |
Compute the euclidean norm of a vector of dimension 3.
| [in] | v |
| cs_data_info_t cs_analysis_data | ( | cs_lnum_t | n_elts, |
| int | stride, | ||
| cs_datatype_t | datatype, | ||
| const void * | indata, | ||
| _Bool | do_abs | ||
| ) |
Compute some simple statistics from an array.
| [in] | n_elts | number of couples in data |
| [in] | stride | size of a couple of data |
| [in] | datatype | datatype |
| [in] | indata | buffer containing input data |
| [in] | do_abs | analyse the absolute value of indata |
| void cs_data_info_dump | ( | const char * | name, |
| FILE * | f, | ||
| cs_lnum_t | n_elts, | ||
| cs_datatype_t | datatype, | ||
| const cs_data_info_t | dinfo | ||
| ) |
Dump a cs_data_info_t structure.
| [in] | name | filename if not NULL |
| [in] | f | output file if not NULL |
| [in] | n_elts | number of couples in data |
| [in] | datatype | datatype |
| [in] | dinfo | cs_data_info_t structure |
| void cs_daxpy | ( | int | size, |
| double | alpha, | ||
| const cs_real_t | x[], | ||
| cs_real_t | beta, | ||
| const cs_real_t | y[], | ||
| cs_real_t * | p_z[], | ||
| _Bool | reset | ||
| ) |
Compute alpha*x + beta*y = z.
| [in] | size | vector dimension |
| [in] | alpha | coefficient for x vector |
| [in] | x | first vector |
| [in] | beta | coefficient for y vector |
| [in] | y | second vector |
| [in,out] | z | resulting vector (allocated if NULL) |
| [in] | reset | reset z vector before computation |
| double cs_dp | ( | int | size, |
| const double | v[], | ||
| const double | w[] | ||
| ) |
Compute the dot product of two vectors of dimension "size" This algorithm tries to reduce round-off error thanks to intermediate sums.
| [in] | size | vector dimension |
| [in] | v | first vector |
| [in] | w | second vector |
| double cs_euclidean_norm | ( | int | len, |
| const double | v[] | ||
| ) |
Compute the euclidean norm 2 of a vector of size len This algorithm tries to reduce round-off error thanks to intermediate sums.
| [in] | len | vector dimension |
| [in] | v | vector |
| double cs_sum | ( | cs_lnum_t | size, |
| const double | v[], | ||
| const double | w[], | ||
| cs_toolbox_type_sum_t | op | ||
| ) |
Compute by default the sum of the elements of an array of double Additional operation are also possible: square, abs This algorithm tries to reduce round-off errors thanks to intermediate sums.
| [in] | size | array dimension |
| [in] | v | values |
| [in] | w | weights (possibly NULL) |
| [in] | op | operation to do when doing the sum |
| double cs_surftri | ( | const cs_real_3_t | xv, |
| const cs_real_3_t | xe, | ||
| const cs_real_3_t | xf | ||
| ) |
Compute the area of the convex_hull generated by 3 points. This corresponds to the computation of the surface of a triangle.
| [in] | xv | |
| [in] | xe | |
| [in] | xf |
| void cs_tmpbuf_alloc | ( | size_t | bufsize, |
| cs_tmpbuf_t ** | p_tb | ||
| ) |
Allocate or reallocate a temporary buffer structure.
| [in] | bufsize | reference size |
| [in,out] | p_tb | pointer to the temporary structure to allocate |
| cs_tmpbuf_t* cs_tmpbuf_free | ( | cs_tmpbuf_t * | tb | ) |
Free a temporary buffer structure.
| [in] | tb | pointer to the temporary structure to free |
| void cs_toolbox_finalize | ( | void | ) |
Free a private structure for this file used for reducing round-off errors during summation.
| void cs_toolbox_init | ( | cs_lnum_t | ref_size | ) |
Allocate and initialize a private structure for this file used for reducing round-off errors during summation.
| [in] | ref_size | reference array dimension |
| cs_toolbox_locmat_t* cs_toolbox_locmat_create | ( | int | n_max_ent | ) |
Allocate and initialize a cs_toolbox_locmat_t structure.
| [in] | n_max_ent | max number of entities |
| void cs_toolbox_locmat_dump | ( | int | parent_id, |
| const cs_toolbox_locmat_t * | lm | ||
| ) |
Dump a local discrete Hodge operator.
| [in] | parent_id | id of the related parent entity |
| [in] | lm | pointer to the cs_sla_locmat_t struct. |
| cs_toolbox_locmat_t* cs_toolbox_locmat_free | ( | cs_toolbox_locmat_t * | lm | ) |
Free a cs_toolbox_locmat_t structure.
| [in] | hb | pointer to a cs_toolbox_locmat_t struct. to free |
| double cs_voltet | ( | const cs_real_3_t | xv, |
| const cs_real_3_t | xe, | ||
| const cs_real_3_t | xf, | ||
| const cs_real_3_t | xc | ||
| ) |
Compute the volume of the convex_hull generated by 4 points. This is equivalent to the computation of the volume of a tetrahedron.
| [in] | xv | |
| [in] | xe | |
| [in] | xf | |
| [in] | xc |
|
static |
|
static |
|
static |
1.8.7