escript  Revision_
Functions
paso::util Namespace Reference

Functions

int comparIndex (const void *index1, const void *index2)
 this int-comparison function is used by qsort/bsearch in various places More...
 
bool isAny (dim_t N, index_t *array, index_t value)
 returns true if array contains value More...
 
dim_t numPositives (dim_t N, const double *x)
 returns the number of positive values in x More...
 
index_t iMax (dim_t N, const index_t *array)
 returns the maximum value in integer array More...
 
index_t cumsum (dim_t N, index_t *array)
 calculates the cumulative sum in array and returns the total sum More...
 
index_t cumsum_maskedTrue (dim_t N, index_t *array, int *mask)
 
index_t cumsum_maskedFalse (dim_t N, index_t *array, int *mask)
 
index_t arg_max (dim_t N, dim_t *lambda)
 returns the index to the largest entry in lambda More...
 
void zeroes (dim_t N, double *x)
 fills array x with zeroes More...
 
void update (dim_t n, double a, double *x, double b, const double *y)
 
void linearCombination (dim_t n, double *z, double a, const double *x, double b, const double *y)
 
double innerProduct (dim_t N, const double *x, const double *y, esysUtils::JMPI &mpiinfo)
 returns the inner product of global arrays x and y More...
 
double lsup (dim_t N, const double *x, const esysUtils::JMPI &mpiinfo)
 returns the global Lsup of x More...
 
double l2 (dim_t N, const double *x, const esysUtils::JMPI &mpiinfo)
 returns the global L2 norm of x More...
 
void applyGivensRotations (dim_t n, double *v, const double *c, const double *s)
 
void copy (dim_t N, double *out, const double *in)
 out = in More...
 
void scale (dim_t N, double *x, double a)
 x = a*x More...
 
void AXPY (dim_t N, double *x, double a, const double *y)
 x = x+a*y More...
 
bool samesign (double a, double b)
 returns true if both arguments have the same sign, false otherwise More...
 

Function Documentation

void paso::util::applyGivensRotations ( dim_t  N,
double *  v,
const double *  c,
const double *  s 
)

Applies a sequence of N-1 Givens rotations (c,s) to v of length N which is assumed to be small.

Referenced by paso::Solver_GMRES2().

index_t paso::util::arg_max ( dim_t  n,
dim_t lambda 
)

returns the index to the largest entry in lambda

References omp_get_max_threads.

Referenced by paso::Preconditioner_LocalAMG_RungeStuebenSearch().

void paso::util::AXPY ( dim_t  N,
double *  x,
double  a,
const double *  y 
)
inline
int paso::util::comparIndex ( const void *  index1,
const void *  index2 
)
void paso::util::copy ( dim_t  N,
double *  out,
const double *  in 
)
inline
index_t paso::util::cumsum ( dim_t  N,
index_t array 
)
index_t paso::util::cumsum_maskedFalse ( dim_t  N,
index_t array,
int *  mask 
)
index_t paso::util::cumsum_maskedTrue ( dim_t  N,
index_t array,
int *  mask 
)
index_t paso::util::iMax ( dim_t  N,
const index_t array 
)
double paso::util::innerProduct ( const dim_t  n,
const double *  x,
const double *  y,
esysUtils::JMPI mpiinfo 
)

returns the inner product of global arrays x and y

References MPI_DOUBLE, MPI_SUM, and omp_get_max_threads.

Referenced by paso::Solver_GMRES2(), paso::Solver_MINRES(), and paso::Solver_TFQMR().

bool paso::util::isAny ( dim_t  N,
index_t array,
index_t  value 
)

returns true if array contains value

References paso::N.

Referenced by paso::Pattern::borrowColoringPointer(), and paso::Pattern::mis().

double paso::util::l2 ( dim_t  n,
const double *  x,
const esysUtils::JMPI mpiinfo 
)
void paso::util::linearCombination ( dim_t  N,
double *  z,
double  a,
const double *  x,
double  b,
const double *  y 
)

Performs an update of the form z = a*x+b*y where y and x are long vectors. If a=0, x is not used; if b=0, y is not used.

References omp_get_max_threads.

Referenced by copy(), paso::Function::derivative(), and paso::Solver_TFQMR().

double paso::util::lsup ( dim_t  n,
const double *  x,
const esysUtils::JMPI mpiinfo 
)
dim_t paso::util::numPositives ( dim_t  N,
const double *  x 
)

returns the number of positive values in x

References paso::N.

Referenced by paso::Distribution::numPositives().

bool paso::util::samesign ( double  a,
double  b 
)
inline
void paso::util::scale ( dim_t  N,
double *  x,
double  a 
)
inline
void paso::util::update ( dim_t  N,
double  a,
double *  x,
double  b,
const double *  y 
)

Performs an update of the form x = a*x+b*y where y and x are long vectors. If b=0, y is not used.

References omp_get_max_threads.

Referenced by AXPY(), paso::Function::derivative(), scale(), paso::Solver_GMRES2(), paso::Solver_NewtonGMRES(), paso::Solver_TFQMR(), paso::FCT_Solver::updateLCN(), and paso::FCT_Solver::updateNL().

void paso::util::zeroes ( dim_t  n,
double *  x 
)