Package madgraph :: Package iolibs :: Module ufo_expression_parsers :: Class UFOExpressionParserMPFortran
[hide private]
[frames] | no frames]

Class UFOExpressionParserMPFortran

source code

            object --+        
                     |        
   UFOExpressionParser --+    
                         |    
UFOExpressionParserFortran --+
                             |
                            UFOExpressionParserMPFortran

A parser for UFO algebraic expressions, outputting Fortran-style code for quadruple precision computation.

Instance Methods [hide private]
 
p_expression_number(self, p)
expression : NUMBER
source code
 
p_expression_variable(self, p)
expression : VARIABLE
source code
 
p_expression_power(self, p)
expression : expression POWER expression
source code
 
p_expression_function1(self, p)
expression : FUNCTION '(' expression ')'
source code
 
p_expression_function2(self, p)
expression : FUNCTION '(' expression ',' expression ')' | FUNCTION '(' boolexpression ',' expression ')'
source code
 
p_expression_function3(self, p)
expression : FUNCTION '(' expression ',' expression ',' expression ')'
source code
 
p_expression_function4(self, p)
expression : FUNCTION '(' expression ',' expression ',' expression ',' expression ')'
source code
 
p_expression_if(self, p)
expression : expression IF boolexpression ELSE expression
source code
 
p_expression_ifimplicit(self, p)
expression : expression IF expression ELSE expression
source code
 
p_expression_complex(self, p)
expression : COMPLEX '(' expression ',' expression ')'
source code
 
p_expression_cond(self, p)
expression : COND '(' expression ',' expression ',' expression ')'
source code
 
p_expression_recms(self, p)
expression : RECMS '(' boolexpression ',' expression ')'
source code
 
p_expression_func(self, p)
expression : CSC group | SEC group | ACSC group | ASEC group | RE group | IM group | ARG group | SQRT group | CONJ group | REGLOG group | REGLOGP group | REGLOGM group | TAN group | ATAN group | BUILTIN group
source code
 
p_expression_real(self, p)
expression : expression RE2
source code
 
p_expression_pi(self, p)
expression : PI
source code

Inherited from UFOExpressionParserFortran: __init__, clean, create_modelfct

Inherited from UFOExpressionParser: build, p_error, p_expression_binop, p_expression_group, p_expression_logical, p_expression_logicalcomb, p_expression_uminus, p_group_parentheses, p_group_parentheses_boolexpr, p_statement_expr, parse, t_ACSC, t_ARG, t_ASEC, t_ATAN, t_BUILTIN, t_COMPLEX, t_COND, t_CONJ, t_CSC, t_ELSE, t_FUNCTION, t_IF, t_IM, t_LOGICAL, t_LOGICALCOMB, t_PI, t_RE, t_RE2, t_RECMS, t_REGLOG, t_REGLOGM, t_REGLOGP, t_SEC, t_SQRT, t_TAN, t_VARIABLE, t_error, t_newline

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  mp_prefix = 'MP__'
  types_def = {bool: lambda v: v, int: lambda v: 'mp__%s' % v if...
  builtin_equiv = {'abs': lambda v: 'ABS'+ v, 'bool': lambda v: ...

Inherited from UFOExpressionParserFortran: logical_equiv

Inherited from UFOExpressionParser: literals, parsed_string, precedence, re_cmath_function, t_NUMBER, t_POWER, t_ignore, tokens

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

p_expression_number(self, p)

source code 

expression : NUMBER

Overrides: UFOExpressionParserFortran.p_expression_number

p_expression_variable(self, p)

source code 

expression : VARIABLE

Overrides: UFOExpressionParserFortran.p_expression_variable

p_expression_power(self, p)

source code 

expression : expression POWER expression

Overrides: UFOExpressionParserFortran.p_expression_power

p_expression_function1(self, p)

source code 

expression : FUNCTION '(' expression ')'

Overrides: UFOExpressionParser.p_expression_function1

p_expression_function2(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ')' | FUNCTION '(' boolexpression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function2

p_expression_function3(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function3

p_expression_function4(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ',' expression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function4

p_expression_if(self, p)

source code 

expression : expression IF boolexpression ELSE expression

Overrides: UFOExpressionParserFortran.p_expression_if

p_expression_ifimplicit(self, p)

source code 

expression : expression IF expression ELSE expression

Overrides: UFOExpressionParserFortran.p_expression_ifimplicit

p_expression_complex(self, p)

source code 

expression : COMPLEX '(' expression ',' expression ')'

Overrides: UFOExpressionParserFortran.p_expression_complex

p_expression_cond(self, p)

source code 

expression : COND '(' expression ',' expression ',' expression ')'

Overrides: UFOExpressionParserFortran.p_expression_cond

p_expression_recms(self, p)

source code 

expression : RECMS '(' boolexpression ',' expression ')'

Overrides: UFOExpressionParserFortran.p_expression_recms

p_expression_func(self, p)

source code 

expression : CSC group | SEC group | ACSC group | ASEC group | RE group | IM group | ARG group | SQRT group | CONJ group | REGLOG group | REGLOGP group | REGLOGM group | TAN group | ATAN group | BUILTIN group

Overrides: UFOExpressionParserFortran.p_expression_func

p_expression_real(self, p)

source code 

expression : expression RE2

Overrides: UFOExpressionParserFortran.p_expression_real

p_expression_pi(self, p)

source code 

expression : PI

Overrides: UFOExpressionParserFortran.p_expression_pi

Class Variable Details [hide private]

types_def

Value:
{bool: lambda v: v, int: lambda v: 'mp__%s' % v if not v.startswith(('\
(', 'mp__', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-')) el\
se v, float: lambda v: 'mp__%s' % v if not v.startswith(('(', 'mp__', \
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-')) else v, comple\
x: lambda v: 'CMPLX(mp__%s, KIND=16)' % v if not v.startswith(('(', 'm\
p__', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-')) else 'CM\
PLX(%s, KIND=16)' % v}

builtin_equiv

Value:
{'abs': lambda v: 'ABS'+ v, 'bool': lambda v: 'LOGICAL'+ v, 'float': l\
ambda v: 'REAL('+ v+ ", KIND=16)", 'complex': lambda v: 'COMPLEX('+ v+\
 ", KIND=16)", 'int': lambda v: 'INTEGER'+ v, 'min': lambda v: 'MIN'+ \
v, 'max': lambda v: 'MAX'+ v}