escript  Revision_
ES_optype.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 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
27 {
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,
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 };
82 
83 const std::string&
85 
87 {
90  G_BINARY, // pointwise operations with two arguments
91  G_UNARY, // pointwise operations with one argument
92  G_UNARY_P, // pointwise operations with one argument, requiring a parameter
93  G_UNARY_R, // pointwise operations with one argument, always real output
94  G_NP1OUT, // non-pointwise op with one output
95  G_NP1OUT_P, // non-pointwise op with one output requiring a parameter
96  G_TENSORPROD, // general tensor product
97  G_NP1OUT_2P, // non-pointwise op with one output requiring two params
98  G_REDUCTION, // non-pointwise unary op with a scalar output
100 };
101 
102 
103 
106 }
107 
108 #endif
Definition: ES_optype.h:45
Definition: ES_optype.h:64
Definition: ES_optype.h:39
const std::string & opToString(ES_optype op)
Definition: ES_optype.cpp:67
Definition: ES_optype.h:95
Definition: ES_optype.h:38
Definition: ES_optype.h:72
Definition: ES_optype.h:42
Definition: ES_optype.h:47
Definition: ES_optype.h:41
Definition: ES_optype.h:56
Definition: AbstractContinuousDomain.cpp:22
Definition: ES_optype.h:70
Definition: ES_optype.h:48
Definition: ES_optype.h:66
Definition: ES_optype.h:30
Definition: ES_optype.h:74
Definition: ES_optype.h:51
Definition: ES_optype.h:32
Definition: ES_optype.h:37
Definition: ES_optype.h:62
Definition: ES_optype.h:33
Definition: ES_optype.h:40
Definition: ES_optype.h:60
Definition: ES_optype.h:94
Definition: ES_optype.h:92
Definition: ES_optype.h:75
Definition: ES_optype.h:49
Definition: ES_optype.h:97
Definition: ES_optype.h:71
Definition: ES_optype.h:57
Definition: ES_optype.h:54
Definition: ES_optype.h:63
Definition: ES_optype.h:98
Definition: ES_optype.h:29
ES_opgroup getOpgroup(ES_optype op)
Definition: ES_optype.cpp:77
ES_optype
Definition: ES_optype.h:26
Definition: ES_optype.h:55
Definition: ES_optype.h:46
Definition: ES_optype.h:61
Definition: ES_optype.h:76
Definition: ES_optype.h:88
Definition: ES_optype.h:79
Definition: ES_optype.h:53
Definition: ES_optype.h:80
Definition: ES_optype.h:58
Definition: ES_optype.h:93
ES_opgroup
Definition: ES_optype.h:86
Definition: ES_optype.h:35
Definition: ES_optype.h:36
Definition: ES_optype.h:89
Definition: ES_optype.h:52
Definition: ES_optype.h:44
Definition: ES_optype.h:43
Definition: ES_optype.h:34
Definition: ES_optype.h:91
Definition: ES_optype.h:90
Definition: ES_optype.h:68
Definition: ES_optype.h:59
Definition: ES_optype.h:69
Definition: ES_optype.h:50
Definition: ES_optype.h:78
Definition: ES_optype.h:73
Definition: ES_optype.h:67
Definition: ES_optype.h:99
Definition: ES_optype.h:31
Definition: ES_optype.h:96
Definition: ES_optype.h:77
Definition: ES_optype.h:65
Definition: ES_optype.h:28