Block-Structured AMR Software Framework
AMReX_Parser_Exe.H File Reference
#include <AMReX_Config.H>
#include <AMReX_Parser_Y.H>
#include <AMReX_Stack.H>
#include <AMReX_Vector.H>
#include <limits>

Go to the source code of this file.

Classes

struct  amrex::ParserExeNull
 
struct  amrex::ParserExeNumber
 
struct  amrex::ParserExeSymbol
 
struct  amrex::ParserExeADD
 
struct  amrex::ParserExeSUB_F
 
struct  amrex::ParserExeSUB_B
 
struct  amrex::ParserExeMUL
 
struct  amrex::ParserExeDIV_F
 
struct  amrex::ParserExeDIV_B
 
struct  amrex::ParserExeF1
 
struct  amrex::ParserExeF2_F
 
struct  amrex::ParserExeF2_B
 
struct  amrex::ParserExeADD_VP
 
struct  amrex::ParserExeSUB_VP
 
struct  amrex::ParserExeMUL_VP
 
struct  amrex::ParserExeDIV_VP
 
struct  amrex::ParserExeADD_PP
 
struct  amrex::ParserExeSUB_PP
 
struct  amrex::ParserExeMUL_PP
 
struct  amrex::ParserExeDIV_PP
 
struct  amrex::ParserExeADD_VN
 
struct  amrex::ParserExeSUB_VN
 
struct  amrex::ParserExeMUL_VN
 
struct  amrex::ParserExeDIV_VN
 
struct  amrex::ParserExeADD_PN
 
struct  amrex::ParserExeSUB_PN
 
struct  amrex::ParserExeMUL_PN
 
struct  amrex::ParserExeDIV_PN
 
struct  amrex::ParserExeSquare
 
struct  amrex::ParserExePOWI
 
struct  amrex::ParserExeIF
 
struct  amrex::ParserExeJUMP
 

Namespaces

 amrex
 

Macros

#define AMREX_PARSER_STACK_SIZE   16
 
#define AMREX_PARSER_LOCAL_IDX0   1000
 
#define AMREX_PARSER_GET_DATA(i)   ((i)<1000) ? x[i] : pstack[(i)-1000]
 

Enumerations

enum  amrex::parser_exe_t {
  amrex::PARSER_EXE_NULL = 0 , amrex::PARSER_EXE_NUMBER , amrex::PARSER_EXE_SYMBOL , amrex::PARSER_EXE_ADD ,
  amrex::PARSER_EXE_SUB_F , amrex::PARSER_EXE_SUB_B , amrex::PARSER_EXE_MUL , amrex::PARSER_EXE_DIV_F ,
  amrex::PARSER_EXE_DIV_B , amrex::PARSER_EXE_F1 , amrex::PARSER_EXE_F2_F , amrex::PARSER_EXE_F2_B ,
  amrex::PARSER_EXE_ADD_VP , amrex::PARSER_EXE_SUB_VP , amrex::PARSER_EXE_MUL_VP , amrex::PARSER_EXE_DIV_VP ,
  amrex::PARSER_EXE_ADD_PP , amrex::PARSER_EXE_SUB_PP , amrex::PARSER_EXE_MUL_PP , amrex::PARSER_EXE_DIV_PP ,
  amrex::PARSER_EXE_ADD_VN , amrex::PARSER_EXE_SUB_VN , amrex::PARSER_EXE_MUL_VN , amrex::PARSER_EXE_DIV_VN ,
  amrex::PARSER_EXE_ADD_PN , amrex::PARSER_EXE_SUB_PN , amrex::PARSER_EXE_MUL_PN , amrex::PARSER_EXE_DIV_PN ,
  amrex::PARSER_EXE_SQUARE , amrex::PARSER_EXE_POWI , amrex::PARSER_EXE_IF , amrex::PARSER_EXE_JUMP
}
 

Functions

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE double amrex::parser_exe_eval (const char *p, double const *x)
 
void amrex::parser_compile_exe_size (struct parser_node *node, char *&p, std::size_t &exe_size, int &max_stack_size, int &stack_size, Vector< char const * > &local_variables)
 
std::size_t amrex::parser_exe_size (struct amrex_parser *parser, int &max_stack_size, int &stack_size)
 
Vector< char const * > amrex::parser_compile (struct amrex_parser *parser, char *p)
 
void amrex::parser_exe_print (char const *p, Vector< std::string > const &vars, Vector< char const * > const &locals)
 

Macro Definition Documentation

◆ AMREX_PARSER_GET_DATA

#define AMREX_PARSER_GET_DATA (   i)    ((i)<1000) ? x[i] : pstack[(i)-1000]

◆ AMREX_PARSER_LOCAL_IDX0

#define AMREX_PARSER_LOCAL_IDX0   1000

◆ AMREX_PARSER_STACK_SIZE

#define AMREX_PARSER_STACK_SIZE   16