ArrayOps.h File Reference
`#include "DataTypes.h"`
`#include "DataException.h"`
`#include <iostream>`
`#include <cmath>`
`#include <complex>`
`#include "ES_optype.h"`

Go to the source code of this file.

## Classes

struct | escript::FMax
| Return the maximum value of the two given values. More...
struct | escript::FMin
| Return the minimum value of the two given values. More...
struct | escript::AbsMax< T >
| Return the absolute maximum value of the two given values. More...

## Namespaces

| escript

## Macros

#define | M_PI 3.14159265358979323846 /* pi */

## Functions

bool | escript::always_real (escript::ES_optype operation)
DataTypes::real_t | escript::fsign (DataTypes::real_t x)
bool | escript::nancheck (DataTypes::real_t d)
| acts as a wrapper to isnan. More...
bool | escript::nancheck (DataTypes::cplx_t d)
DataTypes::real_t | escript::makeNaN ()
| returns a NaN. More...
void | escript::eigenvalues1 (const DataTypes::real_t A00, DataTypes::real_t *ev0)
| solves a 1x1 eigenvalue A*V=ev*V problem More...
void | escript::eigenvalues1 (const DataTypes::cplx_t A00, DataTypes::cplx_t *ev0)
template<class T >
void | escript::eigenvalues2 (const T A00, const T A01, const T A11, T *ev0, T *ev1)
| solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A More...
void | escript::eigenvalues3 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A02, const DataTypes::real_t A11, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *ev2)
| solves a 3x3 eigenvalue A*V=ev*V problem for symmetric A More...
void | escript::eigenvalues_and_eigenvectors1 (const DataTypes::real_t A00, DataTypes::real_t *ev0, DataTypes::real_t *V00, const DataTypes::real_t tol)
| solves a 1x1 eigenvalue A*V=ev*V problem for symmetric A More...
void | escript::vectorInKernel2 (const DataTypes::real_t A00, const DataTypes::real_t A10, const DataTypes::real_t A01, const DataTypes::real_t A11, DataTypes::real_t *V0, DataTypes::real_t *V1)
| returns a non-zero vector in the kernel of [[A00,A01],[A01,A11]] assuming that the kernel dimension is at least 1. More...
void | escript::vectorInKernel3__nonZeroA00 (const DataTypes::real_t A00, const DataTypes::real_t A10, const DataTypes::real_t A20, const DataTypes::real_t A01, const DataTypes::real_t A11, const DataTypes::real_t A21, const DataTypes::real_t A02, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *V0, DataTypes::real_t *V1, DataTypes::real_t *V2)
| returns a non-zero vector in the kernel of [[A00,A01,A02],[A10,A11,A12],[A20,A21,A22]] assuming that the kernel dimension is at least 1 and A00 is non zero. More...
void | escript::eigenvalues_and_eigenvectors2 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A11, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *V00, DataTypes::real_t *V10, DataTypes::real_t *V01, DataTypes::real_t *V11, const DataTypes::real_t tol)
| solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive. More...
void | escript::normalizeVector3 (DataTypes::real_t *V0, DataTypes::real_t *V1, DataTypes::real_t *V2)
| nomalizes a 3-d vector such that length is one and first non-zero component is positive. More...

void

escript::eigenvalues_and_eigenvectors3 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A02, const DataTypes::real_t A11, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *ev2, DataTypes::real_t *V00, DataTypes::real_t *V10, DataTypes::real_t *V20, DataTypes::real_t *V01, DataTypes::real_t *V11, DataTypes::real_t *V21, DataTypes::real_t *V02, DataTypes::real_t *V12, DataTypes::real_t *V22, const DataTypes::real_t tol)

| solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive. More...
template<class LEFT , class RIGHT , class RES >
void | escript::matrix_matrix_product (const int SL, const int SM, const int SR, const LEFT *A, const RIGHT *B, RES *C, int transpose)
DataTypes::real_t | escript::calc_erf (DataTypes::real_t x)
DataTypes::cplx_t | escript::calc_erf (DataTypes::cplx_t x)
DataTypes::real_t | escript::calc_sign (DataTypes::real_t x)
DataTypes::cplx_t | escript::calc_sign (DataTypes::cplx_t x)
DataTypes::real_t | escript::calc_acos (DataTypes::real_t x)
DataTypes::cplx_t | escript::calc_acos (DataTypes::cplx_t x)
escript::DataTypes::real_t | escript::fabs (const escript::DataTypes::cplx_t c)
DataTypes::real_t | escript::calc_gtzero (const DataTypes::real_t &x)
DataTypes::cplx_t | escript::calc_gtzero (const DataTypes::cplx_t &x)
DataTypes::real_t | escript::calc_gezero (const DataTypes::real_t &x)
DataTypes::cplx_t | escript::calc_gezero (const DataTypes::cplx_t &x)
DataTypes::real_t | escript::calc_ltzero (const DataTypes::real_t &x)
DataTypes::cplx_t | escript::calc_ltzero (const DataTypes::cplx_t &x)
DataTypes::real_t | escript::calc_lezero (const DataTypes::real_t &x)
DataTypes::cplx_t | escript::calc_lezero (const DataTypes::cplx_t &x)
template<typename IN >
DataTypes::real_t | escript::abs_f (IN i)
template<>
DataTypes::real_t | escript::abs_f (DataTypes::cplx_t i)
template<class IN >
void | escript::tensor_unary_array_operation_real (const size_t size, const IN *arg1, DataTypes::real_t *argRes, escript::ES_optype operation, DataTypes::real_t tol=0)
template<typename OUT , typename IN >
OUT | escript::conjugate (const IN i)
template<>
DataTypes::real_t | escript::conjugate (const DataTypes::real_t r)
void | escript::tensor_unary_promote (const size_t size, const DataTypes::real_t *arg1, DataTypes::cplx_t *argRes)
template<class IN , typename OUT >
void | escript::tensor_unary_array_operation (const size_t size, const IN *arg1, OUT *argRes, escript::ES_optype operation, DataTypes::real_t tol=0)
bool | escript::supports_cplx (escript::ES_optype operation)

## Macro Definition Documentation

## M_PI

#define M_PI 3.14159265358979323846 /* pi */