|
Nektar++
|
#include <LibUtilities/BasicUtils/Vmath.hpp>#include <LibUtilities/BasicConst/NektarUnivTypeDefs.hpp>#include <LibUtilities/LibUtilitiesDeclspec.h>
Go to the source code of this file.
Namespaces | |
| namespace | Vmath |
Macros | |
| #define | IM1 2147483563 |
| #define | IM2 2147483399 |
| #define | AM (1.0/IM1) |
| #define | IMM1 (IM1-1) |
| #define | IA1 40014 |
| #define | IA2 40692 |
| #define | IQ1 53668 |
| #define | IQ2 52774 |
| #define | IR1 12211 |
| #define | IR2 3791 |
| #define | NTAB 32 |
| #define | NDIV (1+IMM1/NTAB) |
| #define | EPS 1.2e-7 |
| #define | RNMX (1.0-EPS) |
Functions | |
| template<class T > | |
| void | Vmath::Fill (int n, const T alpha, T *x, const int incx) |
| Fill a vector with a constant value. | |
| template void | Vmath::Fill (int n, const Nektar::NekDouble alpha, Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| T | Vmath::ran2 (long *idum) |
| Generates a number from ~Normal(0,1) | |
| template<class T > | |
| void | Vmath::FillWhiteNoise (int n, const T eps, T *x, const int incx, int outseed) |
| Fills a vector with white noise. | |
| template void | Vmath::FillWhiteNoise (int n, const Nektar::NekDouble eps, Nektar::NekDouble *x, const int incx, int outseed) |
| template<class T > | |
| void | Vmath::Vmul (int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| Multiply vector z = x*y. | |
| template void | Vmath::Vmul (int n, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Smul (int n, const T alpha, const T *x, const int incx, T *y, const int incy) |
| Scalar multiply y = alpha*y. | |
| template void | Vmath::Smul (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Vdiv (int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| Multiply vector z = x/y. | |
| template void | Vmath::Vdiv (int n, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Sdiv (int n, const T alpha, const T *x, const int incx, T *y, const int incy) |
| Scalar multiply y = alpha/y. | |
| template void | Vmath::Sdiv (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Vadd (int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| Add vector z = x+y. | |
| template void | Vmath::Vadd (int n, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Sadd (int n, const T alpha, const T *x, const int incx, T *y, const int incy) |
| Add vector y = alpha + x. | |
| template void | Vmath::Sadd (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Vsub (int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| Subtract vector z = x-y. | |
| template void | Vmath::Vsub (int n, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Zero (int n, T *x, const int incx) |
| Zero vector. | |
| template void | Vmath::Zero (int n, Nektar::NekDouble *x, const int incx) |
| template void | Vmath::Zero (int n, int *x, const int incx) |
| template void | Vmath::Zero (int n, long *x, const int incx) |
| template<class T > | |
| void | Vmath::Neg (int n, T *x, const int incx) |
| Negate x = -x. | |
| template void | Vmath::Neg (int n, Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| void | Vmath::Vsqrt (int n, const T *x, const int incx, T *y, const int incy) |
| sqrt y = sqrt(x) | |
| template void | Vmath::Vsqrt (int n, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Vabs (int n, const T *x, const int incx, T *y, const int incy) |
| vabs: y = |x| | |
| template void | Vmath::Vabs (int n, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Vvtvp (int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| vvtvp (vector times vector plus vector): z = w*x + y | |
| template void | Vmath::Vvtvp (int n, const Nektar::NekDouble *w, const int incw, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Vvtvm (int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| vvtvm (vector times vector plus vector): z = w*x - y | |
| template void | Vmath::Vvtvm (int n, const Nektar::NekDouble *w, const int incw, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Svtvp (int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| svtvp (scalar times vector plus vector): z = alpha*x + y | |
| template void | Vmath::Svtvp (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Svtvm (int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz) |
| svtvp (scalar times vector plus vector): z = alpha*x - y | |
| template void | Vmath::Svtvm (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, const int incx, const Nektar::NekDouble *y, const int incy, Nektar::NekDouble *z, const int incz) |
| template<class T > | |
| void | Vmath::Vvtvvtp (int n, const T *v, int incv, const T *w, int incw, const T *x, int incx, const T *y, int incy, T *z, int incz) |
| vvtvvtp (vector times vector plus vector times vector): | |
| template void | Vmath::Vvtvvtp (int n, const Nektar::NekDouble *v, int incv, const Nektar::NekDouble *w, int incw, const Nektar::NekDouble *x, int incx, const Nektar::NekDouble *y, int incy, Nektar::NekDouble *z, int incz) |
| template<class T > | |
| void | Vmath::Vvtvvtm (int n, const T *v, int incv, const T *w, int incw, const T *x, int incx, const T *y, int incy, T *z, int incz) |
| vvtvvtm (vector times vector minus vector times vector): | |
| template void | Vmath::Vvtvvtm (int n, const Nektar::NekDouble *v, int incv, const Nektar::NekDouble *w, int incw, const Nektar::NekDouble *x, int incx, const Nektar::NekDouble *y, int incy, Nektar::NekDouble *z, int incz) |
| template<class T > | |
| void | Vmath::Svtsvtp (int n, const T alpha, const T *x, int incx, const T beta, const T *y, int incy, T *z, int incz) |
| vvtvvtp (scalar times vector plus scalar times vector): | |
| template void | Vmath::Svtsvtp (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *x, int incx, const Nektar::NekDouble beta, const Nektar::NekDouble *y, int incy, Nektar::NekDouble *z, int incz) |
| template<class T > | |
| void | Vmath::Vstvpp (int n, const T alpha, const T *v, int incv, const T *w, int incw, const T *x, int incx, T *z, int incz) |
| Vstvpp (scalar times vector plus vector plus vector): | |
| template void | Vmath::Vstvpp (int n, const Nektar::NekDouble alpha, const Nektar::NekDouble *v, int incv, const Nektar::NekDouble *w, int incw, const Nektar::NekDouble *x, int incx, Nektar::NekDouble *z, int incz) |
| template<class T > | |
| void | Vmath::Gathr (int n, const T *x, const int *y, T *z) |
| Gather vector z[i] = x[y[i]]. | |
| template void | Vmath::Gathr (int n, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| void | Vmath::Gathr (int n, const T *sign, const T *x, const int *y, T *z) |
| Gather vector z[i] = sign[i]*x[y[i]]. | |
| template void | Vmath::Gathr (int n, const Nektar::NekDouble *sign, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| void | Vmath::Scatr (int n, const T *x, const int *y, T *z) |
| Scatter vector z[y[i]] = x[i]. | |
| template void | Vmath::Scatr (int n, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| void | Vmath::Scatr (int n, const T *sign, const T *x, const int *y, T *z) |
| Scatter vector z[y[i]] = sign[i]*x[i]. | |
| template void | Vmath::Scatr (int n, const Nektar::NekDouble *sign, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| void | Vmath::Assmb (int n, const T *x, const int *y, T *z) |
| Assemble z[y[i]] += x[i]; z should be zero'd first. | |
| template void | Vmath::Assmb (int n, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| void | Vmath::Assmb (int n, const T *sign, const T *x, const int *y, T *z) |
| Assemble z[y[i]] += sign[i]*x[i]; z should be zero'd first. | |
| template void | Vmath::Assmb (int n, const Nektar::NekDouble *sign, const Nektar::NekDouble *x, const int *y, Nektar::NekDouble *z) |
| template<class T > | |
| T | Vmath::Vsum (int n, const T *x, const int incx) |
| Subtract return sum(x) | |
| template Nektar::NekDouble | Vmath::Vsum (int n, const Nektar::NekDouble *x, const int incx) |
| template int | Vmath::Vsum (int n, const int *x, const int incx) |
| template<class T > | |
| int | Vmath::Imax (int n, const T *x, const int incx) |
| Return the index of the maximum element in x. | |
| template int | Vmath::Imax (int n, const Nektar::NekDouble *x, const int incx) |
| template int | Vmath::Imax (int n, const int *x, const int incx) |
| template<class T > | |
| T | Vmath::Vmax (int n, const T *x, const int incx) |
| Return the maximum element in x – called vmax to avoid conflict with max. | |
| template Nektar::NekDouble | Vmath::Vmax (int n, const Nektar::NekDouble *x, const int incx) |
| template int | Vmath::Vmax (int n, const int *x, const int incx) |
| template<class T > | |
| int | Vmath::Iamax (int n, const T *x, const int incx) |
| Return the index of the maximum absolute element in x. | |
| template int | Vmath::Iamax (int n, const Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| T | Vmath::Vamax (int n, const T *x, const int incx) |
| Return the maximum absolute element in x called vamax to avoid conflict with max. | |
| template Nektar::NekDouble | Vmath::Vamax (int n, const Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| int | Vmath::Imin (int n, const T *x, const int incx) |
| Return the index of the minimum element in x. | |
| template int | Vmath::Imin (int n, const Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| T | Vmath::Vmin (int n, const T *x, const int incx) |
| Return the minimum element in x - called vmin to avoid conflict with min. | |
| template Nektar::NekDouble | Vmath::Vmin (int n, const Nektar::NekDouble *x, const int incx) |
| template int | Vmath::Vmin (int n, const int *x, const int incx) |
| template<class T > | |
| T | Vmath::Dot (int n, const T *w, const T *x) |
| vvtvp (vector times vector times vector): z = w*x*y | |
| template Nektar::NekDouble | Vmath::Dot (int n, const Nektar::NekDouble *w, const Nektar::NekDouble *x) |
| template<class T > | |
| T | Vmath::Dot (int n, const T *w, const int incw, const T *x, const int incx) |
| vvtvp (vector times vector times vector): z = w*x*y | |
| template Nektar::NekDouble | Vmath::Dot (int n, const Nektar::NekDouble *w, const int incw, const Nektar::NekDouble *x, const int incx) |
| template<class T > | |
| T | Vmath::Dot2 (int n, const T *w, const T *x, const int *y) |
| vvtvp (vector times vector times vector): z = w*x*y | |
| template Nektar::NekDouble | Vmath::Dot2 (int n, const Nektar::NekDouble *w, const Nektar::NekDouble *x, const int *y) |
| template<class T > | |
| T | Vmath::Dot2 (int n, const T *w, const int incw, const T *x, const int incx, const int *y, const int incy) |
| vvtvp (vector times vector times vector): z = w*x*y | |
| template Nektar::NekDouble | Vmath::Dot2 (int n, const Nektar::NekDouble *w, const int incw, const Nektar::NekDouble *x, const int incx, const int *y, const int incy) |
| template<typename T > | |
| void | Vmath::Vcopy (int n, const T *x, const int incx, T *y, const int incy) |
| template void | Vmath::Vcopy (int n, const int *x, const int incx, int *y, const int incy) |
| template void | Vmath::Vcopy (int n, const unsigned int *x, const int incx, unsigned int *y, const int incy) |
| template void | Vmath::Vcopy (int n, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| template<class T > | |
| void | Vmath::Reverse (int n, const T *x, const int incx, T *y, const int incy) |
| template void | Vmath::Reverse (int n, const Nektar::NekDouble *x, const int incx, Nektar::NekDouble *y, const int incy) |
| #define AM (1.0/IM1) |
Definition at line 59 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IA1 40014 |
Definition at line 61 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IA2 40692 |
Definition at line 62 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IM1 2147483563 |
Definition at line 57 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IM2 2147483399 |
Definition at line 58 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IMM1 (IM1-1) |
Definition at line 60 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IQ1 53668 |
Definition at line 63 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IQ2 52774 |
Definition at line 64 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IR1 12211 |
Definition at line 65 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define IR2 3791 |
Definition at line 66 of file Vmath.cpp.
Referenced by Vmath::ran2().
Definition at line 68 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define NTAB 32 |
Definition at line 67 of file Vmath.cpp.
Referenced by Vmath::ran2().
| #define RNMX (1.0-EPS) |
Definition at line 70 of file Vmath.cpp.
Referenced by Vmath::ran2().
1.8.1.2