escript Revision_
|
Functions | |
int | comparIndex (const void *index1, const void *index2) |
this int-comparison function is used by qsort/bsearch in various places | |
bool | isAny (dim_t N, const index_t *array, index_t value) |
returns true if array contains value | |
dim_t | numPositives (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the number of positive values in x | |
index_t | iMax (dim_t N, const index_t *array) |
returns the maximum value in integer array | |
index_t | cumsum (dim_t N, index_t *array) |
calculates the cumulative sum in array and returns the total sum | |
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 | |
void | zeroes (dim_t N, double *x) |
fills array x with zeroes | |
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, escript::JMPI mpiInfo) |
returns the inner product of global arrays x and y | |
double | lsup (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the global Lsup of x | |
double | l2 (dim_t N, const double *x, escript::JMPI mpiInfo) |
returns the global L2 norm of x | |
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 | |
void | scale (dim_t N, double *x, double a) |
x = a*x | |
void | AXPY (dim_t N, double *x, double a, const double *y) |
x = x+a*y | |
bool | samesign (double a, double b) |
returns true if both arguments have the same sign, false otherwise | |
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
|
inline |
x = x+a*y
References paso::N, and update().
Referenced by paso::Preconditioner_LocalSmoother_solve(), paso::Preconditioner_Smoother_solve(), paso::Preconditioner_Smoother_solve_byTolerance(), and paso::Solver_MINRES().
int paso::util::comparIndex | ( | const void * | index1, |
const void * | index2 | ||
) |
this int-comparison function is used by qsort/bsearch in various places
Referenced by paso::Pattern::borrowMainDiagonalPointer(), paso::SystemMatrix< T >::extendedRowsForST(), paso::SparseMatrix< T >::getTranspose(), paso::Pattern::Pattern(), paso::Solver_getRILU(), paso::Solver_updateIncompleteSchurComplement(), paso::SparseMatrix_MatrixMatrix_BB(), paso::SparseMatrix_MatrixMatrix_BD(), paso::SparseMatrix_MatrixMatrix_DB(), paso::SparseMatrix_MatrixMatrix_DD(), and paso::SparseMatrix< T >::unroll().
|
inline |
out = in
References copy(), linearCombination(), and paso::N.
Referenced by paso::SparseMatrix< T >::applyBlockMatrix(), paso::LinearSystem::call(), copy(), paso::Preconditioner_LocalSmoother_solve(), paso::Preconditioner_Smoother_solve(), paso::Preconditioner_Smoother_solve_byTolerance(), paso::Preconditioner_solve(), paso::TransportProblem::solve(), paso::Solver_MINRES(), paso::Solver_solveRILU(), paso::Solver_TFQMR(), and paso::FCT_Solver::updateNL().
index_t paso::util::cumsum | ( | dim_t | N, |
index_t * | array | ||
) |
calculates the cumulative sum in array and returns the total sum
References paso::N.
Referenced by paso::Pattern::getSubpattern(), and paso::Solver_getRILU().
index_t paso::util::cumsum_maskedFalse | ( | dim_t | N, |
index_t * | array, | ||
int * | mask | ||
) |
References paso::N.
index_t paso::util::cumsum_maskedTrue | ( | dim_t | N, |
index_t * | array, | ||
int * | mask | ||
) |
References paso::N.
index_t paso::util::iMax | ( | dim_t | N, |
const index_t * | array | ||
) |
returns the maximum value in integer array
References escript::DataTypes::index_t_min(), and paso::N.
double paso::util::innerProduct | ( | dim_t | n, |
const double * | x, | ||
const double * | y, | ||
escript::JMPI | mpiinfo | ||
) |
returns the inner product of global arrays x and y
References MPI_DOUBLE, and MPI_SUM.
Referenced by paso::Solver_GMRES2(), paso::Solver_MINRES(), and paso::Solver_TFQMR().
bool paso::util::isAny | ( | dim_t | N, |
const 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, | ||
escript::JMPI | mpiinfo | ||
) |
returns the global L2 norm of x
References MPI_DOUBLE, and MPI_SUM.
Referenced by paso::Solver_GMRES2(), paso::Solver_MINRES(), paso::Solver_NewtonGMRES(), paso::Solver_TFQMR(), and paso::FCT_Solver::updateNL().
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.
Referenced by copy(), paso::Function::derivative(), and paso::Solver_TFQMR().
double paso::util::lsup | ( | dim_t | n, |
const double * | x, | ||
escript::JMPI | mpiinfo | ||
) |
returns the global Lsup of x
References MPI_DOUBLE, and MPI_MAX.
Referenced by paso::Function::derivative(), paso::Preconditioner_Smoother_solve_byTolerance(), paso::Solver_NewtonGMRES(), paso::FCT_Solver::updateLCN(), and paso::FCT_Solver::updateNL().
dim_t paso::util::numPositives | ( | dim_t | N, |
const double * | x, | ||
escript::JMPI | mpiInfo | ||
) |
|
inline |
returns true if both arguments have the same sign, false otherwise
|
inline |
x = a*x
References paso::N, and update().
Referenced by paso::Solver_MINRES(), and paso::FCT_Solver::updateLCN().
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.
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 | ||
) |
fills array x with zeroes
Referenced by paso::Function::derivative(), paso::TransportProblem::resetTransport(), paso::Solver_GMRES2(), paso::Solver_TFQMR(), and paso::FCT_Solver::updateNL().