programmer's documentation
Functions
cs_array_reduce.c File Reference
#include "cs_defs.h"
#include <assert.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bft_mem.h"
#include "bft_error.h"
#include "bft_printf.h"
#include "cs_array_reduce.h"
Include dependency graph for cs_array_reduce.c:

Functions

void cs_array_reduce_sum_l (cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_real_t v[], double vsum[])
 Compute sums of an n-dimensional cs_real_t array's components. More...
 
void cs_array_reduce_simple_stats_l (cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_real_t v[], double vmin[], double vmax[], double vsum[])
 Compute simple local stats (minima, maxima, sum) of an n-dimensional cs_real_t array's components. More...
 
void cs_array_reduce_simple_stats_l_w (cs_lnum_t n_elts, int dim, const cs_lnum_t *v_elt_list, const cs_lnum_t *w_elt_list, const cs_real_t v[], const cs_real_t w[], double vmin[], double vmax[], double vsum[], double wsum[])
 Compute simple local stats (minima, maxima, sum, weighted sum) of an n-dimensional cs_real_t array's components for a given mesh location. More...
 

Function Documentation

void cs_array_reduce_simple_stats_l ( cs_lnum_t  n_elts,
int  dim,
const cs_lnum_t v_elt_list,
const cs_real_t  v[],
double  vmin[],
double  vmax[],
double  vsum[] 
)

Compute simple local stats (minima, maxima, sum) of an n-dimensional cs_real_t array's components.

The maximum allowed dimension is 9 (allowing for a rank-2 tensor). The array is interleaved.

For arrays of dimension 3, the statistics relative to the norm are also computed, and added at the end of the statistics arrays (which must be size dim+1).

The algorithm here is similar to that used for BLAS, but computes several quantities simultaneously for better cache behavior

Parameters
[in]n_eltsnumber of local elements
[in]dimlocal array dimension (max: 9)
[in]v_elt_listoptional list of parent elements on which values are defined, or NULL
[in]vpointer to array values
[out]vminresulting min array (size: dim, or 4 if dim = 3)
[out]vmaxresulting max array (size: dim, or 4 if dim = 3)
[out]vsumresulting sum array (size: dim, or 4 if dim = 3)
void cs_array_reduce_simple_stats_l_w ( cs_lnum_t  n_elts,
int  dim,
const cs_lnum_t v_elt_list,
const cs_lnum_t w_elt_list,
const cs_real_t  v[],
const cs_real_t  w[],
double  vmin[],
double  vmax[],
double  vsum[],
double  wsum[] 
)

Compute simple local stats (minima, maxima, sum, weighted sum) of an n-dimensional cs_real_t array's components for a given mesh location.

The maximum allowed dimension is 9 (allowing for a rank-2 tensor). The array is interleaved.

For arrays of dimension 3, the statistics relative to the norm are also computed, and added at the end of the statistics arrays (which must be size dim+1).

The algorithm here is similar to that used for BLAS, but computes several quantities simultaneously for better cache behavior

Parameters
[in]n_eltsnumber of local elements
[in]dimlocal array dimension (max: 9)
[in]v_elt_listoptional list of parent elements on which values are defined, or NULL
[in]w_elt_listoptional list of parent elements on which weights are defined, or NULL; if v_elt_list is defined (ie. non-NULL),then w_elt_list = v_elt_list is assumed, so this parameter is ignored
[in]vpointer to array values
[in]wpointer to weights
[out]vminresulting min array (size: dim, or 4 if dim = 3)
[out]vmaxresulting max array (size: dim, or 4 if dim = 3)
[out]vsumresulting sum array (size: dim, or 4 if dim = 3)
[out]wsumresulting weighted sum array (size: dim, or 4 if dim = 3)
void cs_array_reduce_sum_l ( cs_lnum_t  n_elts,
int  dim,
const cs_lnum_t v_elt_list,
const cs_real_t  v[],
double  vsum[] 
)

Compute sums of an n-dimensional cs_real_t array's components.

The maximum allowed dimension is 9 (allowing for a rank-2 tensor). The array is interleaved.

For arrays of dimension 3, the statistics relative to the norm are also computed, and added at the end of the statistics arrays (which must be size dim+1).

The algorithm here is similar to that used for BLAS.

Parameters
[in]n_eltsnumber of local elements
[in]dimlocal array dimension (max: 9)
[in]v_elt_listoptional list of parent elements on which values are defined, or NULL
[in]vpointer to array values
[out]vsumresulting sum array (size: dim, or 4 if dim = 3)