00001 #ifndef __REAL_OPERATOR_LIB__
00002 #define __REAL_OPERATOR_LIB__
00003 #include "OpLib.h"
00004 #include "symfunimpexp.h"
00005
00006 class __IMPEXP__ CAMrealOperatorLib : public CAMoperatorLib
00007 {
00008
00009 public :
00010
00011 static void evaluate(int i, double** argPtr);
00012
00013 int getOperatorIndex(char*);
00014 int getUnaryOperatorIndex(char*);
00015 int getBinaryOperatorIndex(char*);
00016
00017 int getOperatorPriority(int index);
00018 char* getOperatorSymbol(int index);
00019 int getOperatorCount();
00020 int getOperatorArgCount(int index);
00021
00022 static void** getFunctionArrayPtr();
00023
00024 public :
00025
00026
00027
00028
00029 static void Plus(double**);
00030 static void Minus(double**);
00031
00032
00033
00034
00035 static void Add(double**);
00036 static void Subtract(double**);
00037
00038 static void Times(double **);
00039 static void Divide(double **);
00040 static void Exponentiate(double **);
00041
00042
00043
00044 static void Sin(double**);
00045 static void Cos(double**);
00046 static void Tan(double**);
00047 static void Asin(double**);
00048 static void Acos(double**);
00049 static void Atan(double**);
00050 static void Atan2(double**);
00051 static void Sinh(double**);
00052 static void Cosh(double**);
00053 static void Tanh(double**);
00054 static void Ceil(double**);
00055 static void Exp(double**);
00056 static void Fabs(double**);
00057 static void Floor(double**);
00058 static void Fmod(double**);
00059 static void Log(double**);
00060 static void Log10(double**);
00061 static void Sqrt(double**);
00062 static void Pow(double**);
00063
00064
00065
00066 static int operatorCount;
00067 static char* Symbols[];
00068 static int Priority[];
00069 static int ArgCount[];
00070 static void* FunctionArray[];
00071 };
00072 #endif
00073