8.3
general documentation
cs_blas.h File Reference
#include "cs_defs.h"
#include "cs_base.h"
#include "cs_log.h"
+ Include dependency graph for cs_blas.h:

Go to the source code of this file.

Enumerations

enum  cs_blas_reduce_t { CS_BLAS_REDUCE_SUPERBLOCK , CS_BLAS_REDUCE_KAHAN }
 

Functions

void cs_blas_library_info (cs_log_t log_type)
 Print information on BLAS libraries used. More...
 
void cs_blas_set_reduce_algorithm (cs_blas_reduce_t mode)
 Set the preferred BLAS reduction algorithm family. More...
 
void cs_axpy (cs_lnum_t n, double a, const cs_real_t *x, cs_real_t *y)
 
double cs_sum (cs_lnum_t n, const cs_real_t *x)
 
double cs_weighted_sum (cs_lnum_t n, const cs_real_t *w, const cs_real_t *x)
 
double cs_dot (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y)
 Return the dot product of 2 vectors: x.y. More...
 
double cs_dot_xx (cs_lnum_t n, const cs_real_t *x)
 Return dot products of a vector with itself: x.x. More...
 
double cs_dot_wxx (cs_lnum_t n, const cs_real_t *w, const cs_real_t *x)
 
void cs_dot_xx_xy (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y, double *xx, double *xy)
 
void cs_dot_xy_yz (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y, const cs_real_t *z, double *xx, double *xy)
 
void cs_dot_xx_xy_yz (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y, const cs_real_t *z, double *xx, double *xy, double *yz)
 
void cs_dot_xx_yy_xy_xz_yz (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y, const cs_real_t *z, double *xx, double *yy, double *xy, double *xz, double *yz)
 
double cs_gdot (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y)
 Return the global dot product of 2 vectors: x.y. More...
 
double cs_gdot_xx (cs_lnum_t n, const cs_real_t *x)
 
void cs_gdot_xx_xy (cs_lnum_t n, const cs_real_t *x, const cs_real_t *y, double *xx, double *xy)
 
double cs_gres (cs_lnum_t n, const cs_real_t *vol, const cs_real_t *x, const cs_real_t *y)
 Return the global residual of 2 intensive vectors: 1/sum(vol) . sum(x.y.vol) More...
 
double cs_gmean (cs_lnum_t n, const cs_real_t *vol, const cs_real_t *x)
 Return the global spacial average of an intensive vectors: 1/sum(vol) . sum(x.vol) More...
 

Enumeration Type Documentation

◆ cs_blas_reduce_t

Enumerator
CS_BLAS_REDUCE_SUPERBLOCK 

Reduction based on l3superblock60 algorithm, described in [8]

CS_BLAS_REDUCE_KAHAN 

Reduction based on Kahan's compensated summation, described in [12]

Function Documentation

◆ cs_axpy()

void cs_axpy ( cs_lnum_t  n,
double  a,
const cs_real_t x,
cs_real_t y 
)

◆ cs_blas_library_info()

void cs_blas_library_info ( cs_log_t  log_type)

Print information on BLAS libraries used.

Parameters
[in]log_typelog type

◆ cs_blas_set_reduce_algorithm()

void cs_blas_set_reduce_algorithm ( cs_blas_reduce_t  mode)

Set the preferred BLAS reduction algorithm family.

This may not be enforced for all algorithms, though it should at least be enforced for the most general functions such as cs_dot.

Parameters
[in]modeBLAS mode to use

◆ cs_dot()

double cs_dot ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y 
)

Return the dot product of 2 vectors: x.y.

Parameters
[in]nsize of arrays x and y
[in]xarray of floating-point values
[in]yarray of floating-point values
Returns
dot product

◆ cs_dot_wxx()

double cs_dot_wxx ( cs_lnum_t  n,
const cs_real_t w,
const cs_real_t x 
)

◆ cs_dot_xx()

double cs_dot_xx ( cs_lnum_t  n,
const cs_real_t x 
)

Return dot products of a vector with itself: x.x.

For better precision, a superblock algorithm is used.

Parameters
[in]nsize of array x
[in]xarray of floating-point values
Returns
dot product

◆ cs_dot_xx_xy()

void cs_dot_xx_xy ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y,
double *  xx,
double *  xy 
)

◆ cs_dot_xx_xy_yz()

void cs_dot_xx_xy_yz ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y,
const cs_real_t z,
double *  xx,
double *  xy,
double *  yz 
)

◆ cs_dot_xx_yy_xy_xz_yz()

void cs_dot_xx_yy_xy_xz_yz ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y,
const cs_real_t z,
double *  xx,
double *  yy,
double *  xy,
double *  xz,
double *  yz 
)

◆ cs_dot_xy_yz()

void cs_dot_xy_yz ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y,
const cs_real_t z,
double *  xx,
double *  xy 
)

◆ cs_gdot()

double cs_gdot ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y 
)

Return the global dot product of 2 vectors: x.y.

In parallel mode, the local results are summed on the default global communicator.

For better precision, a superblock algorithm is used.

Parameters
[in]nsize of arrays x and y
[in]xarray of floating-point values
[in]yarray of floating-point values
Returns
dot product

◆ cs_gdot_xx()

double cs_gdot_xx ( cs_lnum_t  n,
const cs_real_t x 
)

◆ cs_gdot_xx_xy()

void cs_gdot_xx_xy ( cs_lnum_t  n,
const cs_real_t x,
const cs_real_t y,
double *  xx,
double *  xy 
)

◆ cs_gmean()

double cs_gmean ( cs_lnum_t  n,
const cs_real_t vol,
const cs_real_t x 
)

Return the global spacial average of an intensive vectors: 1/sum(vol) . sum(x.vol)

In parallel mode, the local results are summed on the default global communicator.

Parameters
[in]nsize of arrays x
[in]volarray of floating-point values
[in]xarray of floating-point values
Returns
global residual

◆ cs_gres()

double cs_gres ( cs_lnum_t  n,
const cs_real_t vol,
const cs_real_t x,
const cs_real_t y 
)

Return the global residual of 2 intensive vectors: 1/sum(vol) . sum(x.y.vol)

In parallel mode, the local results are summed on the default global communicator.

Parameters
[in]nsize of arrays x and y
[in]volarray of floating-point values
[in]xarray of floating-point values
[in]yarray of floating-point values
Returns
global residual

◆ cs_sum()

double cs_sum ( cs_lnum_t  n,
const cs_real_t x 
)

◆ cs_weighted_sum()

double cs_weighted_sum ( cs_lnum_t  n,
const cs_real_t w,
const cs_real_t x 
)