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