Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
Public 타입 | Public 멤버 함수 | Private 멤버 함수 | Private 속성 | 모든 멤버 목록
HepTool::Evaluator 클래스 참조

#include <Evaluator.h>

HepTool::Evaluator에 대한 상속 다이어그램 :
G4tgrEvaluator

Public 타입

enum  {
  OK, WARNING_EXISTING_VARIABLE, WARNING_EXISTING_FUNCTION, WARNING_BLANK_STRING,
  ERROR_NOT_A_NAME, ERROR_SYNTAX_ERROR, ERROR_UNPAIRED_PARENTHESIS, ERROR_UNEXPECTED_SYMBOL,
  ERROR_UNKNOWN_VARIABLE, ERROR_UNKNOWN_FUNCTION, ERROR_EMPTY_PARAMETER, ERROR_CALCULATION_ERROR
}
 

Public 멤버 함수

 Evaluator ()
 
 ~Evaluator ()
 
double evaluate (const char *expression)
 
int status () const
 
int error_position () const
 
void print_error () const
 
std::string error_name () const
 
void setVariable (const char *name, double value)
 
void setVariable (const char *name, const char *expression)
 
void setFunction (const char *name, double(*fun)())
 
void setFunction (const char *name, double(*fun)(double))
 
void setFunction (const char *name, double(*fun)(double, double))
 
void setFunction (const char *name, double(*fun)(double, double, double))
 
void setFunction (const char *name, double(*fun)(double, double, double, double))
 
void setFunction (const char *name, double(*fun)(double, double, double, double, double))
 
bool findVariable (const char *name) const
 
bool findFunction (const char *name, int npar) const
 
void removeVariable (const char *name)
 
void removeFunction (const char *name, int npar)
 
void clear ()
 
void setStdMath ()
 
void setSystemOfUnits (double meter=1.0, double kilogram=1.0, double second=1.0, double ampere=1.0, double kelvin=1.0, double mole=1.0, double candela=1.0)
 

Private 멤버 함수

 Evaluator (const Evaluator &)
 
Evaluatoroperator= (const Evaluator &)
 

Private 속성

voidp
 

상세한 설명

Evaluator of arithmetic expressions with an extendable dictionary. Example:

* #include "CLHEP/Evaluator/Evaluator.h"
* eval.setStdMath();
* double res = eval.evaluate("sin(30*degree)");
* if (eval.status() != HepTool::Evaluator::OK) eval.print_error();
*
작성자
Evgeni Chernyaev Evgue.nosp@m.ni.T.nosp@m.chern.nosp@m.iaev.nosp@m.@cern.nosp@m..ch

Evaluator.h 파일의 26 번째 라인에서 정의되었습니다.

멤버 열거형 문서화

anonymous enum

List of possible statuses. Status of the last operation can be obtained with status(). In case if status() is an ERROR the corresponding error message can be printed with print_error().

참고
status
error_position
print_error
열거형 멤버
OK 

Everything OK

WARNING_EXISTING_VARIABLE 

Redefinition of existing variable

WARNING_EXISTING_FUNCTION 

Redefinition of existing function

WARNING_BLANK_STRING 

Empty input string

ERROR_NOT_A_NAME 

Not allowed sysmbol in the name of variable or function

ERROR_SYNTAX_ERROR 

Systax error

ERROR_UNPAIRED_PARENTHESIS 

Unpaired parenthesis

ERROR_UNEXPECTED_SYMBOL 

Unexpected sysbol

ERROR_UNKNOWN_VARIABLE 

Non-existing variable

ERROR_UNKNOWN_FUNCTION 

Non-existing function

ERROR_EMPTY_PARAMETER 

Function call has empty parameter

ERROR_CALCULATION_ERROR 

Error during calculation

Evaluator.h 파일의 39 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

HepTool::Evaluator::Evaluator ( )

Constructor.

Evaluator.cc 파일의 599 번째 라인에서 정의되었습니다.

다음을 참조함 : OK, Struct::theExpression, Struct::thePosition, Struct::theResult, Struct::theStatus.

HepTool::Evaluator::~Evaluator ( )

Destructor.

Evaluator.cc 파일의 609 번째 라인에서 정의되었습니다.

HepTool::Evaluator::Evaluator ( const Evaluator )
private

멤버 함수 문서화

void HepTool::Evaluator::clear ( void  )

Clear all settings.

Evaluator.cc 파일의 765 번째 라인에서 정의되었습니다.

다음을 참조함 : OK, Struct::theDictionary, Struct::theExpression, Struct::thePosition, Struct::theResult, Struct::theStatus.

다음에 의해서 참조됨 : G4GDMLEvaluator::Clear(), G4GDMLEvaluator::G4GDMLEvaluator().

std::string HepTool::Evaluator::error_name ( ) const

get a string defining the error name

Evaluator.cc 파일의 653 번째 라인에서 정의되었습니다.

다음을 참조함 : ERROR_CALCULATION_ERROR, ERROR_EMPTY_PARAMETER, ERROR_NOT_A_NAME, ERROR_SYNTAX_ERROR, ERROR_UNEXPECTED_SYMBOL, ERROR_UNKNOWN_FUNCTION, ERROR_UNKNOWN_VARIABLE, ERROR_UNPAIRED_PARENTHESIS, Struct::theStatus.

다음에 의해서 참조됨 : print_error().

int HepTool::Evaluator::error_position ( ) const

Returns position in the input string where the problem occured.

Evaluator.cc 파일의 639 번째 라인에서 정의되었습니다.

double HepTool::Evaluator::evaluate ( const char *  expression)

Evaluates the arithmetic expression given as character string. The expression may consist of numbers, variables and functions separated by arithmetic (+, - , /, *, ^, **) and logical operators (==, !=, >, >=, <, <=, &&, ||).

매개변수
expressioninput expression.
반환값
result of the evaluation.
참고
status
error_position
print_error

Evaluator.cc 파일의 614 번째 라인에서 정의되었습니다.

다음을 참조함 : engine(), Struct::theDictionary, Struct::theExpression, Struct::thePosition, Struct::theResult, Struct::theStatus, WARNING_BLANK_STRING.

다음에 의해서 참조됨 : G4GDMLEvaluator::Evaluate(), G4tgrUtils::GetDouble().

bool HepTool::Evaluator::findFunction ( const char *  name,
int  npar 
) const

Finds the function in the dictionary.

매개변수
namename of the function to be unset.
nparnumber of parameters of the function.
반환값
true if such a function exists, false otherwise.

Evaluator.cc 파일의 735 번째 라인에서 정의되었습니다.

다음을 참조함 : MAX_N_PAR, n, REMOVE_BLANKS, sss, Struct::theDictionary.

bool HepTool::Evaluator::findVariable ( const char *  name) const

Finds the variable in the dictionary.

매개변수
namename of the variable.
반환값
true if such a variable exists, false otherwise.

Evaluator.cc 파일의 724 번째 라인에서 정의되었습니다.

다음을 참조함 : n, REMOVE_BLANKS, Struct::theDictionary.

다음에 의해서 참조됨 : G4GDMLEvaluator::DefineConstant(), G4GDMLEvaluator::DefineVariable(), G4GDMLEvaluator::GetConstant().

Evaluator& HepTool::Evaluator::operator= ( const Evaluator )
private
void HepTool::Evaluator::print_error ( ) const

Prints error message if status() is an ERROR.

Evaluator.cc 파일의 644 번째 라인에서 정의되었습니다.

다음을 참조함 : error_name(), OK, Struct::theStatus.

다음에 의해서 참조됨 : G4GDMLEvaluator::Evaluate(), G4tgrEvaluator::print_error().

void HepTool::Evaluator::removeFunction ( const char *  name,
int  npar 
)

Removes the function from the dictionary.

매개변수
namename of the function to be unset.
nparnumber of parameters of the function.

Evaluator.cc 파일의 755 번째 라인에서 정의되었습니다.

다음을 참조함 : MAX_N_PAR, n, REMOVE_BLANKS, sss, Struct::theDictionary.

void HepTool::Evaluator::removeVariable ( const char *  name)

Removes the variable from the dictionary.

매개변수
namename of the variable.

Evaluator.cc 파일의 746 번째 라인에서 정의되었습니다.

다음을 참조함 : n, REMOVE_BLANKS, Struct::theDictionary.

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)()  fun 
)

Adds to the dictionary a function without parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 699 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

다음에 의해서 참조됨 : G4tgrEvaluator::AddCommonFunctions(), setStdMath().

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)(double)  fun 
)

Adds to the dictionary a function with one parameter. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 703 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)(double, double)  fun 
)

Adds to the dictionary a function with two parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 707 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)(double, double, double)  fun 
)

Adds to the dictionary a function with three parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 711 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)(double, double, double, double)  fun 
)

Adds to the dictionary a function with four parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 715 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

void HepTool::Evaluator::setFunction ( const char *  name,
double(*)(double, double, double, double, double)  fun 
)

Adds to the dictionary a function with five parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.

매개변수
namefunction name.
funpointer to the real function in the user code.

Evaluator.cc 파일의 719 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

void HepTool::Evaluator::setStdMath ( )

Sets standard mathematical functions and constants.

setStdMath.cc 파일의 30 번째 라인에서 정의되었습니다.

다음을 참조함 : eval_abs(), eval_acos(), eval_asin(), eval_atan(), eval_atan2(), eval_cos(), eval_cosh(), eval_exp(), eval_log(), eval_log10(), eval_max(), eval_min(), eval_pow(), eval_sin(), eval_sinh(), eval_sqrt(), eval_tan(), eval_tanh(), setFunction(), setVariable().

다음에 의해서 참조됨 : G4GDMLEvaluator::Clear(), G4GDMLEvaluator::G4GDMLEvaluator().

void HepTool::Evaluator::setSystemOfUnits ( double  meter = 1.0,
double  kilogram = 1.0,
double  second = 1.0,
double  ampere = 1.0,
double  kelvin = 1.0,
double  mole = 1.0,
double  candela = 1.0 
)

Sets system of units. Default is the SI system of units. To set the CGS (Centimeter-Gram-Second) system of units one should call: setSystemOfUnits(100., 1000., 1.0, 1.0, 1.0, 1.0, 1.0);

To set system of units accepted in the GEANT4 simulation toolkit one should call:

* setSystemOfUnits(1.e+3, 1./1.60217733e-25, 1.e+9, 1./1.60217733e-10,
* 1.0, 1.0, 1.0);
*

The basic units in GEANT4 are:

* Mega electron Volt (MeV = 1.)
* positron charge (eplus = 1.)
* degree Kelvin (kelvin = 1.)
* the amount of substance (mole = 1.)
* luminous intensity (candela = 1.)
* radian (radian = 1.)
*

setSystemOfUnits.cc 파일의 9 번째 라인에서 정의되었습니다.

다음을 참조함 : A(), ampere, bar, barn, Bq, C(), candela, cd, cm, deg, e, e_SI, eV, g, K, kelvin, kg, kilogram, km, L, m, meter, mm, mole, N, ohm, pi, rad, S(), second, setVariable(), sr.

다음에 의해서 참조됨 : G4GDMLEvaluator::Clear(), G4GDMLEvaluator::G4GDMLEvaluator().

void HepTool::Evaluator::setVariable ( const char *  name,
double  value 
)

Adds to the dictionary a variable with given value. If a variable with such a name already exist in the dictionary, then status will be set to WARNING_EXISTING_VARIABLE.

매개변수
namename of the variable.
valuevalue assigned to the variable.

Evaluator.cc 파일의 690 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

다음에 의해서 참조됨 : G4GDMLEvaluator::DefineConstant(), G4GDMLEvaluator::DefineVariable(), setStdMath(), setSystemOfUnits(), G4GDMLEvaluator::SetVariable().

void HepTool::Evaluator::setVariable ( const char *  name,
const char *  expression 
)

Adds to the dictionary a variable with an arithmetic expression assigned to it. If a variable with such a name already exist in the dictionary, then status will be set to WARNING_EXISTING_VARIABLE.

매개변수
namename of the variable.
expressionarithmetic expression.

Evaluator.cc 파일의 693 번째 라인에서 정의되었습니다.

다음을 참조함 : setItem().

int HepTool::Evaluator::status ( ) const

Returns status of the last operation with the evaluator.

Evaluator.cc 파일의 634 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : G4GDMLEvaluator::Evaluate(), G4tgrUtils::GetDouble().

멤버 데이타 문서화

void* HepTool::Evaluator::p
private

Evaluator.h 파일의 257 번째 라인에서 정의되었습니다.


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: