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