CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
Evaluator
Evaluator
Evaluator/Evaluator.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id: Evaluator.h,v 1.2 2010/07/20 17:00:49 garren Exp $
3
// ---------------------------------------------------------------------------
4
5
#ifndef HEP_EVALUATOR_H
6
#define HEP_EVALUATOR_H
7
8
#include <string>
9
10
namespace
HepTool {
11
26
class
Evaluator {
27
public
:
28
39
enum
{
40
OK
,
41
WARNING_EXISTING_VARIABLE
,
42
WARNING_EXISTING_FUNCTION
,
43
WARNING_BLANK_STRING
,
44
ERROR_NOT_A_NAME
,
45
ERROR_SYNTAX_ERROR
,
46
ERROR_UNPAIRED_PARENTHESIS
,
47
ERROR_UNEXPECTED_SYMBOL
,
48
ERROR_UNKNOWN_VARIABLE
,
49
ERROR_UNKNOWN_FUNCTION
,
50
ERROR_EMPTY_PARAMETER
,
51
ERROR_CALCULATION_ERROR
52
};
53
57
Evaluator
();
58
62
~Evaluator
();
63
76
double
evaluate
(
const
char
* expression);
77
81
int
status
()
const
;
82
86
int
error_position
()
const
;
87
91
void
print_error
()
const
;
95
std::string
error_name
()
const
;
96
105
void
setVariable
(
const
char
* name,
double
value);
106
116
void
setVariable
(
const
char
* name,
const
char
* expression);
117
126
void
setFunction
(
const
char
* name,
double
(*fun)());
127
136
void
setFunction
(
const
char
* name,
double
(*fun)(
double
));
137
146
void
setFunction
(
const
char
* name,
double
(*fun)(
double
,
double
));
147
156
void
setFunction
(
const
char
* name,
double
(*fun)(
double
,
double
,
double
));
157
166
void
setFunction
(
const
char
* name,
167
double
(*fun)(
double
,
double
,
double
,
double
));
168
177
void
setFunction
(
const
char
* name,
178
double
(*fun)(
double
,
double
,
double
,
double
,
double
));
179
186
bool
findVariable
(
const
char
* name)
const
;
187
195
bool
findFunction
(
const
char
* name,
int
npar)
const
;
196
202
void
removeVariable
(
const
char
* name);
203
210
void
removeFunction
(
const
char
* name,
int
npar);
211
215
void
clear
();
216
220
void
setStdMath
();
221
248
void
setSystemOfUnits
(
double
meter = 1.0,
249
double
kilogram = 1.0,
250
double
second = 1.0,
251
double
ampere = 1.0,
252
double
kelvin = 1.0,
253
double
mole = 1.0,
254
double
candela = 1.0);
255
256
private
:
257
void
* p;
// private data
258
Evaluator
(
const
Evaluator
&);
// copy constructor is not allowed
259
Evaluator
& operator=(
const
Evaluator
&);
// assignment is not allowed
260
};
261
262
}
// namespace HepTool
263
264
#endif
/* HEP_EVALUATOR_H */
Generated on Mon May 6 2013 04:04:10 for CLHEP by
1.8.1.2