casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
LELFunctionEnums.h
Go to the documentation of this file.
00001 //# LELFunctionEnums.h: Enums of function names
00002 //# Copyright (C) 1997,1998,1999,2001,2003
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This library is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU Library General Public License as published by
00007 //# the Free Software Foundation; either version 2 of the License, or (at your
00008 //# option) any later version.
00009 //#
00010 //# This library is distributed in the hope that it will be useful, but WITHOUT//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00011 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00012 //# License for more details.
00013 //#
00014 //# You should have received a copy of the GNU Library General Public License
00015 //# along with this library; if not, write to the Free Software Foundation,
00016 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00017 //#
00018 //# Correspondence concerning AIPS++ should be addressed as follows:
00019 //#        Internet email: aips2-request@nrao.edu.
00020 //#        Postal address: AIPS++ Project Office
00021 //#                        National Radio Astronomy Observatory
00022 //#                        520 Edgemont Road
00023 //#                        Charlottesville, VA 22903-2475 USA
00024 //#
00025 //# $Id: LELFunctionEnums.h 18093 2004-11-30 17:51:10Z ddebonis $
00026 
00027 #ifndef LATTICES_LELFUNCTIONENUMS_H
00028 #define LATTICES_LELFUNCTIONENUMS_H
00029 
00030 namespace casa { //# NAMESPACE CASA - BEGIN
00031 
00032 // <summary> Each LEL function is described in this enum </summary>
00033 //
00034 // <use visibility=local>
00035 //
00036 // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
00037 // </reviewed>
00038 //
00039 // <prerequisite>
00040 //   <li> <linkto class="Lattice"> Lattice</linkto>
00041 //   <li> <linkto class="LatticeExpr"> LatticeExpr</linkto>
00042 //   <li> <linkto class="LatticeExprNode"> LatticeExprNode</linkto>
00043 //   <li> <linkto class="LELInterface"> LELInterface</linkto>
00044 // </prerequisite>
00045 //
00046 // <etymology>
00047 //  This enum provides a value for each function accepted
00048 //  by the Lattice Expression Language classes.
00049 // </etymology>
00050 //
00051 // <synopsis>
00052 //  Each function name accepted by the bridging class LatticeExprNode
00053 //  and passed on to the
00054 //  <linkto class="LELFunction1D">LELFunction</linkto>
00055 //  letter classes is labelled internally 
00056 //  with a value from this enum.  
00057 // </synopsis> 
00058 //
00059 // <todo asof="1998/01/21">
00060 // </todo>
00061 
00062 
00063 class LELFunctionEnums 
00064 {
00065 public:
00066    enum Function {
00067 
00068 // sin
00069    SIN,
00070 
00071 // sinh
00072    SINH,
00073 
00074 // asin 
00075    ASIN,
00076 
00077 // cos
00078    COS,
00079 
00080 // cosh
00081    COSH,
00082 
00083 // acos
00084    ACOS,
00085 
00086 // tan
00087    TAN,
00088 
00089 // tanh
00090    TANH,
00091 
00092 // atan; atan(x) returns the arc tangent of x in the range -pi/2 to  pi/2.
00093    ATAN,
00094 
00095 // atan2; atan2(y,x) computes an arc tangent of y/x in the range -pi to pi
00096    ATAN2,
00097 
00098 // exp
00099    EXP,
00100 
00101 // log
00102    LOG,
00103 
00104 // log10
00105    LOG10,
00106 
00107 // power pow(x,y) ==  x**y or x^y
00108    POW,
00109 
00110 // sqrt
00111    SQRT,
00112 
00113 // round
00114    ROUND,
00115 
00116 // sign (-1 if <0; 0 if 0; 1 if >0)
00117    SIGN,
00118 
00119 // ceil; returns the least  integral  value  greater  than  or  equal  to  x. 
00120    CEIL,
00121 
00122 // floor; returns the greatest integral  value  less  than  or equal  to  x.
00123    FLOOR,
00124 
00125 // abs
00126    ABS,
00127 
00128 // phase (of complex number)
00129    ARG,
00130 
00131 // real (part of number)
00132    REAL,
00133 
00134 // imag (inary part of complex number)
00135    IMAG,
00136 
00137 // conj (ugate complex number)
00138    CONJ,
00139 
00140 // complex (form complex from 2 reals)
00141    COMPLEX,
00142 
00143 // fmod; fmod(x,y) returns the remainder  of  x  with  respect  to  y;  that is, 
00144 // the result r is one of the numbers that differ from x by an integral multiple of y.  
00145    FMOD,
00146 
00147 // min; min(x,y)
00148    MIN,
00149 
00150 // max; max(x,y)
00151    MAX,
00152 
00153 // min; min(x) (is a scalar)
00154    MIN1D,
00155 
00156 // max; max(x) (is a scalar)
00157    MAX1D,
00158 
00159 // mean; mean(x) (is a scalar)
00160    MEAN1D,
00161 
00162 // median; median(x) (is a scalar)
00163    MEDIAN1D,
00164 
00165 // fractile; fractile(x,fraction) (is a scalar)
00166    FRACTILE1D,
00167 
00168 // fractilerange; fractilerange(x,fraction1[,fraction2]) (is a scalar)
00169    FRACTILERANGE1D,
00170 
00171 // sum; sum(x) (is a scalar)
00172    SUM,
00173 
00174 // nelements; nelements(x) (is a scalar)
00175    NELEM,
00176 
00177 // all (true) (is a scalar)
00178    ALL,
00179 
00180 // any (true) (is a scalar)
00181    ANY,
00182 
00183 // ntrue 
00184    NTRUE,
00185 
00186 // nfalse
00187    NFALSE,
00188 
00189 // mask
00190    MASK,
00191 
00192 // value
00193    VALUE,
00194 
00195 // iif (similar to ?: in C++)
00196    IIF,
00197 
00198 // replace
00199    REPLACE,
00200 
00201 // dimensionality
00202    NDIM,
00203 
00204 // length (of an axis)
00205    LENGTH,
00206 
00207 // is the value a NaN?
00208    ISNAN,
00209 
00210 // a bool array telling which indices of an axis are to be used
00211    INDEXIN,
00212 
00213 // number of functions
00214    NFUNCTIONS
00215 
00216 };
00217 
00218 };
00219 
00220 
00221 } //# NAMESPACE CASA - END
00222 
00223 #endif