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

Go to the source code of this file.

Classes

struct  amrex::IParserExeNull
 
struct  amrex::IParserExeNumber
 
struct  amrex::IParserExeSymbol
 
struct  amrex::IParserExeADD
 
struct  amrex::IParserExeSUB
 
struct  amrex::IParserExeMUL
 
struct  amrex::IParserExeDIV_F
 
struct  amrex::IParserExeDIV_B
 
struct  amrex::IParserExeNEG
 
struct  amrex::IParserExeF1
 
struct  amrex::IParserExeF2_F
 
struct  amrex::IParserExeF2_B
 
struct  amrex::IParserExeADD_VP
 
struct  amrex::IParserExeSUB_VP
 
struct  amrex::IParserExeMUL_VP
 
struct  amrex::IParserExeDIV_VP
 
struct  amrex::IParserExeDIV_PV
 
struct  amrex::IParserExeADD_PP
 
struct  amrex::IParserExeSUB_PP
 
struct  amrex::IParserExeMUL_PP
 
struct  amrex::IParserExeDIV_PP
 
struct  amrex::IParserExeNEG_P
 
struct  amrex::IParserExeADD_VN
 
struct  amrex::IParserExeSUB_VN
 
struct  amrex::IParserExeMUL_VN
 
struct  amrex::IParserExeDIV_VN
 
struct  amrex::IParserExeDIV_NV
 
struct  amrex::IParserExeADD_PN
 
struct  amrex::IParserExeSUB_PN
 
struct  amrex::IParserExeMUL_PN
 
struct  amrex::IParserExeDIV_PN
 
struct  amrex::IParserExeIF
 
struct  amrex::IParserExeJUMP
 

Namespaces

 amrex
 

Macros

#define AMREX_IPARSER_STACK_SIZE   16
 
#define AMREX_IPARSER_LOCAL_IDX0   1000
 
#define AMREX_IPARSER_GET_DATA(i)   ((i)>=1000) ? pstack[(i)-1000] : x[i]
 

Enumerations

enum  amrex::iparser_exe_t {
  amrex::IPARSER_EXE_NULL = 0 , amrex::IPARSER_EXE_NUMBER , amrex::IPARSER_EXE_SYMBOL , amrex::IPARSER_EXE_ADD ,
  amrex::IPARSER_EXE_SUB , amrex::IPARSER_EXE_MUL , amrex::IPARSER_EXE_DIV_F , amrex::IPARSER_EXE_DIV_B ,
  amrex::IPARSER_EXE_NEG , amrex::IPARSER_EXE_F1 , amrex::IPARSER_EXE_F2_F , amrex::IPARSER_EXE_F2_B ,
  amrex::IPARSER_EXE_ADD_VP , amrex::IPARSER_EXE_SUB_VP , amrex::IPARSER_EXE_MUL_VP , amrex::IPARSER_EXE_DIV_VP ,
  amrex::IPARSER_EXE_DIV_PV , amrex::IPARSER_EXE_ADD_PP , amrex::IPARSER_EXE_SUB_PP , amrex::IPARSER_EXE_MUL_PP ,
  amrex::IPARSER_EXE_DIV_PP , amrex::IPARSER_EXE_NEG_P , amrex::IPARSER_EXE_ADD_VN , amrex::IPARSER_EXE_SUB_VN ,
  amrex::IPARSER_EXE_MUL_VN , amrex::IPARSER_EXE_DIV_NV , amrex::IPARSER_EXE_DIV_VN , amrex::IPARSER_EXE_ADD_PN ,
  amrex::IPARSER_EXE_SUB_PN , amrex::IPARSER_EXE_MUL_PN , amrex::IPARSER_EXE_DIV_PN , amrex::IPARSER_EXE_IF ,
  amrex::IPARSER_EXE_JUMP
}
 

Functions

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE long long amrex::iparser_exe_eval (const char *p, long long const *x)
 
void amrex::iparser_compile_exe_size (struct iparser_node *node, char *&p, std::size_t &exe_size, int &max_stack_size, int &stack_size, Vector< char * > &local_variables)
 
std::size_t amrex::iparser_exe_size (struct amrex_iparser *parser, int &max_stack_size, int &stack_size)
 
void amrex::iparser_compile (struct amrex_iparser *parser, char *p)
 

Macro Definition Documentation

◆ AMREX_IPARSER_GET_DATA

#define AMREX_IPARSER_GET_DATA (   i)    ((i)>=1000) ? pstack[(i)-1000] : x[i]

◆ AMREX_IPARSER_LOCAL_IDX0

#define AMREX_IPARSER_LOCAL_IDX0   1000

◆ AMREX_IPARSER_STACK_SIZE

#define AMREX_IPARSER_STACK_SIZE   16