Go to the documentation of this file.
19 #ifndef __PASO_UTIL_H__
20 #define __PASO_UTIL_H__
47 int comparIndex(
const void* index1,
const void* index2);
82 void update(
dim_t N,
double a,
double* x,
double b,
const double* y);
88 inline void copy(
dim_t N,
double* out,
const double* in)
100 inline void AXPY(
dim_t N,
double* x,
double a,
const double* y)
106 inline bool samesign(
double a,
double b)
108 return (a>=0 && b>=0) || (a<=0 && b<=0);
114 #endif // __PASO_UTIL_H__
index_t iMax(dim_t N, const index_t *array)
returns the maximum value in integer array
Definition: PasoUtil.cpp:94
index_t arg_max(dim_t n, dim_t *lambda)
returns the index to the largest entry in lambda
Definition: PasoUtil.cpp:298
static dim_t N
Definition: SparseMatrix_saveHB.cpp:52
double lsup(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global Lsup of x
Definition: PasoUtil.cpp:495
index_t index_t_min()
Returns the minimum finite value for the index_t type.
Definition: DataTypes.h:99
index_t cumsum(dim_t N, index_t *array)
calculates the cumulative sum in array and returns the total sum
Definition: PasoUtil.cpp:115
#define MPI_SUM
Definition: EsysMPI.h:52
bool samesign(double a, double b)
returns true if both arguments have the same sign, false otherwise
Definition: PasoUtil.h:134
void AXPY(dim_t N, double *x, double a, const double *y)
x = x+a*y
Definition: PasoUtil.h:128
dim_t numPositives(dim_t N, const double *x, escript::JMPI mpiInfo)
returns the number of positive values in x
Definition: PasoUtil.cpp:68
#define MPI_MAX
Definition: EsysMPI.h:54
void applyGivensRotations(dim_t n, double *v, const double *c, const double *s)
Definition: PasoUtil.cpp:565
index_t cumsum_maskedTrue(dim_t N, index_t *array, int *mask)
Definition: PasoUtil.cpp:168
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:116
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:368
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:530
int comparIndex(const void *index1, const void *index2)
this int-comparison function is used by qsort/bsearch in various places
Definition: PasoUtil.cpp:54
index_t dim_t
Definition: DataTypes.h:93
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
index_t cumsum_maskedFalse(dim_t N, index_t *array, int *mask)
Definition: PasoUtil.cpp:233
void linearCombination(dim_t n, double *z, double a, const double *x, double b, const double *y)
Definition: PasoUtil.cpp:417
#define MPI_DOUBLE
Definition: EsysMPI.h:47
void scale(dim_t N, double *x, double a)
x = a*x
Definition: PasoUtil.h:122
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:88
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:348
bool isAny(dim_t N, const index_t *array, index_t value)
returns true if array contains value
Definition: PasoUtil.cpp:59
Definition: BiCGStab.cpp:26
double innerProduct(dim_t n, const double *x, const double *y, escript::JMPI mpiinfo)
returns the inner product of global arrays x and y
Definition: PasoUtil.cpp:457