escript  Revision_
Classes | Namespaces | Macros | Functions
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...
 
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)
 
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 */

Referenced by escript::eigenvalues3().