escript  Revision_
ES_optype.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2020 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014-2017 by Centre for Geoscience Computing (GeoComp)
14 * Development from 2019 by School of Earth and Environmental Sciences
15 **
16 *****************************************************************************/
17 
18 #ifndef __ESCRIPT_ESOPTYPE_H__
19 #define __ESCRIPT_ESOPTYPE_H__
20 
21 #include <string>
22 
23 namespace escript
24 {
25 
26 // For the purposes of unit testing and maintaining sanity, it is important that this enum be contiguous
27 enum ES_optype
28 {
29  UNKNOWNOP=0,
30  IDENTITY=1,
31  ADD=2,
32  SUB=3,
33  MUL=4,
34  DIV=5,
35  POW=6,
36  SIN=POW+1,
37  COS=SIN+1,
38  TAN=SIN+2,
39  ASIN=SIN+3,
40  ACOS=SIN+4,
41  ATAN=SIN+5,
42  SINH=SIN+6,
43  COSH=SIN+7,
44  TANH=SIN+8,
45  ERF=SIN+9,
46  ASINH=SIN+10,
47  ACOSH=SIN+11,
48  ATANH=SIN+12,
49  LOG10=ATANH+1,
50  LOG=LOG10+1,
51  SIGN=LOG10+2,
52  ABS=LOG10+3,
53  NEG=LOG10+4,
58  GZ=RECIP+1,
59  LZ=GZ+1, // <0
60  GEZ=GZ+2, // >=0
61  LEZ=GZ+3, // <=0
62  NEZ=GZ+4, // >=0
63  EZ=GZ+5,
64  SYM=EZ+1,
65  NSYM=SYM+1,
73  HER=CONDEVAL+1, // hermitian
74  NHER=HER+1, // antihermitian
78  LESS=CONJ+1, // a<b
82  PHS=LESS_EQUAL+1, // phase
83  PROM=PHS+1 // promote real to complex
84 };
85 
86 const std::string&
88 
90 {
93  G_BINARY, // pointwise operations with two arguments
94  G_UNARY, // pointwise operations with one argument
95  G_UNARY_P, // pointwise operations with one argument, requiring a parameter
96  G_UNARY_R, // pointwise operations with one argument, always real output
97  G_NP1OUT, // non-pointwise op with one output
98  G_NP1OUT_P, // non-pointwise op with one output requiring a parameter
99  G_TENSORPROD, // general tensor product
100  G_NP1OUT_2P, // non-pointwise op with one output requiring two params
101  G_REDUCTION, // non-pointwise unary op with a scalar output
103  G_UNARY_C, // pointwise operations with one argument, always cplx output
104  G_UNARY_PR // G_UNARY_P but always real output
105 };
106 
107 
108 
111 
112 const std::string&
114 }
115 
116 #endif
escript::IDENTITY
Definition: ES_optype.h:55
escript::MINVAL
Definition: ES_optype.h:95
escript::SIGN
Definition: ES_optype.h:76
escript::CONJ
Definition: ES_optype.h:102
escript::LZ
Definition: ES_optype.h:84
escript::COSH
Definition: ES_optype.h:68
escript::POS
Definition: ES_optype.h:79
escript::PROM
Definition: ES_optype.h:108
escript::SQRT
Definition: ES_optype.h:81
escript::G_UNARY_R
Definition: ES_optype.h:108
escript::IMAG
Definition: ES_optype.h:101
escript::SWAP
Definition: ES_optype.h:94
escript::EXP
Definition: ES_optype.h:80
escript::NSYM
Definition: ES_optype.h:90
escript::NHER
Definition: ES_optype.h:99
escript::G_UNARY_C
Definition: ES_optype.h:115
escript::SINH
Definition: ES_optype.h:67
escript::opToString
const std::string & opToString(ES_optype op)
Definition: ES_optype.cpp:88
escript::G_NP1OUT_P
Definition: ES_optype.h:110
escript::G_UNKNOWN
Definition: ES_optype.h:103
escript::TRANS
Definition: ES_optype.h:92
escript::G_BINARY
Definition: ES_optype.h:105
escript::ATANH
Definition: ES_optype.h:73
escript::LOG
Definition: ES_optype.h:75
escript::G_UNARY_P
Definition: ES_optype.h:107
escript::SUB
Definition: ES_optype.h:57
escript::ACOS
Definition: ES_optype.h:65
escript::G_CONDEVAL
Definition: ES_optype.h:114
escript::G_NP1OUT_2P
Definition: ES_optype.h:112
escript::TANH
Definition: ES_optype.h:69
escript::PHS
Definition: ES_optype.h:107
escript::ERF
Definition: ES_optype.h:70
escript::LESS
Definition: ES_optype.h:103
escript::NEG
Definition: ES_optype.h:78
escript::G_IDENTITY
Definition: ES_optype.h:104
escript::GZ
Definition: ES_optype.h:83
escript::GREATER
Definition: ES_optype.h:104
escript::ABS
Definition: ES_optype.h:77
escript::REAL
Definition: ES_optype.h:100
escript::G_UNARY
Definition: ES_optype.h:106
escript::G_REDUCTION
Definition: ES_optype.h:113
escript::ACOSH
Definition: ES_optype.h:72
escript::MUL
Definition: ES_optype.h:58
escript::UNKNOWNOP
Definition: ES_optype.h:54
escript::ADD
Definition: ES_optype.h:56
escript::GEZ
Definition: ES_optype.h:85
escript::ES_opgroup
ES_opgroup
Definition: ES_optype.h:101
escript::TRACE
Definition: ES_optype.h:93
escript::LEZ
Definition: ES_optype.h:86
escript::CONDEVAL
Definition: ES_optype.h:97
escript::groupToString
const std::string & groupToString(ES_opgroup g)
Definition: ES_optype.cpp:104
escript::DIV
Definition: ES_optype.h:59
escript::getOpgroup
ES_opgroup getOpgroup(ES_optype op)
Definition: ES_optype.cpp:98
escript::RECIP
Definition: ES_optype.h:82
escript::G_NP1OUT
Definition: ES_optype.h:109
escript::ES_optype
ES_optype
Definition: ES_optype.h:39
escript::LESS_EQUAL
Definition: ES_optype.h:106
escript
Definition: AbstractContinuousDomain.cpp:23
escript::GREATER_EQUAL
Definition: ES_optype.h:105
escript::PROD
Definition: ES_optype.h:91
escript::LOG10
Definition: ES_optype.h:74
escript::SYM
Definition: ES_optype.h:89
escript::SIN
Definition: ES_optype.h:61
escript::EZ
Definition: ES_optype.h:88
ES_optype.h
escript::POW
Definition: ES_optype.h:60
escript::TAN
Definition: ES_optype.h:63
escript::G_TENSORPROD
Definition: ES_optype.h:111
escript::ASIN
Definition: ES_optype.h:64
escript::G_UNARY_PR
Definition: ES_optype.h:116
escript::COS
Definition: ES_optype.h:62
escript::ASINH
Definition: ES_optype.h:71
escript::ATAN
Definition: ES_optype.h:66
escript::MAXVAL
Definition: ES_optype.h:96
escript::NEZ
Definition: ES_optype.h:87
escript::HER
Definition: ES_optype.h:98