Block-Structured AMR Software Framework
AMReX_Parser_Y.H File Reference
#include <AMReX_Config.H>
#include <AMReX_GpuQualifiers.H>
#include <AMReX_GpuPrint.H>
#include <AMReX_Math.H>
#include <AMReX_Print.H>
#include <AMReX_REAL.H>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <set>
#include <string>
#include <string_view>
#include <type_traits>

Go to the source code of this file.

Classes

struct  amrex::parser_node
 
struct  amrex::parser_number
 
struct  amrex::parser_symbol
 
struct  amrex::parser_f1
 
struct  amrex::parser_f2
 
struct  amrex::parser_f3
 
struct  amrex::parser_assign
 
struct  amrex::amrex_parser
 

Namespaces

 amrex
 

Enumerations

enum  amrex::parser_f1_t {
  amrex::PARSER_SQRT , amrex::PARSER_EXP , amrex::PARSER_LOG , amrex::PARSER_LOG10 ,
  amrex::PARSER_SIN , amrex::PARSER_COS , amrex::PARSER_TAN , amrex::PARSER_ASIN ,
  amrex::PARSER_ACOS , amrex::PARSER_ATAN , amrex::PARSER_SINH , amrex::PARSER_COSH ,
  amrex::PARSER_TANH , amrex::PARSER_ASINH , amrex::PARSER_ACOSH , amrex::PARSER_ATANH ,
  amrex::PARSER_ABS , amrex::PARSER_FLOOR , amrex::PARSER_CEIL , amrex::PARSER_COMP_ELLINT_1 ,
  amrex::PARSER_COMP_ELLINT_2 , amrex::PARSER_ERF
}
 
enum  amrex::parser_f2_t {
  amrex::PARSER_POW , amrex::PARSER_ATAN2 , amrex::PARSER_GT , amrex::PARSER_LT ,
  amrex::PARSER_GEQ , amrex::PARSER_LEQ , amrex::PARSER_EQ , amrex::PARSER_NEQ ,
  amrex::PARSER_AND , amrex::PARSER_OR , amrex::PARSER_HEAVISIDE , amrex::PARSER_JN ,
  amrex::PARSER_MIN , amrex::PARSER_MAX , amrex::PARSER_FMOD
}
 
enum  amrex::parser_f3_t { amrex::PARSER_IF }
 
enum  amrex::parser_node_t {
  amrex::PARSER_NUMBER , amrex::PARSER_SYMBOL , amrex::PARSER_ADD , amrex::PARSER_SUB ,
  amrex::PARSER_MUL , amrex::PARSER_DIV , amrex::PARSER_F1 , amrex::PARSER_F2 ,
  amrex::PARSER_F3 , amrex::PARSER_ASSIGN , amrex::PARSER_LIST
}
 

Functions

void amrex_parsererror (char const *s,...)
 
void amrex::parser_defexpr (struct parser_node *body)
 
struct parser_symbol * amrex::parser_makesymbol (char *name)
 
struct parser_node * amrex::parser_newnode (enum parser_node_t type, struct parser_node *l, struct parser_node *r)
 
struct parser_node * amrex::parser_newneg (struct parser_node *n)
 
struct parser_node * amrex::parser_newnumber (double d)
 
struct parser_node * amrex::parser_newsymbol (struct parser_symbol *symbol)
 
struct parser_node * amrex::parser_newf1 (enum parser_f1_t ftype, struct parser_node *l)
 
struct parser_node * amrex::parser_newf2 (enum parser_f2_t ftype, struct parser_node *l, struct parser_node *r)
 
struct parser_node * amrex::parser_newf3 (enum parser_f3_t ftype, struct parser_node *n1, struct parser_node *n2, struct parser_node *n3)
 
struct parser_node * amrex::parser_newassign (struct parser_symbol *sym, struct parser_node *v)
 
struct parser_node * amrex::parser_newlist (struct parser_node *nl, struct parser_node *nr)
 
struct amrex_parser * amrex::amrex_parser_new ()
 
void amrex::amrex_parser_delete (struct amrex_parser *parser)
 
struct amrex_parser * amrex::parser_dup (struct amrex_parser *source)
 
struct parser_node * amrex::parser_ast_dup (struct amrex_parser *my_parser, struct parser_node *node, int move)
 
void amrex::parser_regvar (struct amrex_parser *parser, char const *name, int i)
 
void amrex::parser_setconst (struct amrex_parser *parser, char const *name, double c)
 
void amrex::parser_print (struct amrex_parser *parser)
 
std::set< std::string > amrex::parser_get_symbols (struct amrex_parser *parser)
 
int amrex::parser_depth (struct amrex_parser *parser)
 
void amrex::parser_ast_optimize (struct parser_node *node)
 
std::size_t amrex::parser_ast_size (struct parser_node *node)
 
void amrex::parser_ast_print (struct parser_node *node, std::string const &space, std::ostream &printer)
 
void amrex::parser_ast_regvar (struct parser_node *node, char const *name, int i)
 
void amrex::parser_ast_setconst (struct parser_node *node, char const *name, double c)
 
void amrex::parser_ast_get_symbols (struct parser_node *node, std::set< std::string > &symbols, std::set< std::string > &local_symbols)
 
int amrex::parser_ast_depth (struct parser_node *node)
 
void amrex::parser_ast_sort (struct parser_node *node)
 
double amrex::parser_get_number (struct parser_node *node)
 
void amrex::parser_set_number (struct parser_node *node, double v)
 
bool amrex::parser_node_equal (struct parser_node *a, struct parser_node *b)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_exp (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_log (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_log10 (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_sin (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_cos (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_tan (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_asin (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_acos (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_atan (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_sinh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_cosh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_tanh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_asinh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_acosh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_atanh (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINEamrex::parser_math_comp_ellint_1 (T k)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINEamrex::parser_math_comp_ellint_2 (T k)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_erf (T a)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_pow (T a, T b)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_atan2 (T a, T b)
 
template<typename T >
AMREX_GPU_HOST_DEVICE AMREX_NO_INLINEamrex::parser_math_jn (int a, T b)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE double amrex::parser_call_f1 (enum parser_f1_t type, double a)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE double amrex::parser_call_f2 (enum parser_f2_t type, double a, double b)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE double amrex::parser_call_f3 (enum parser_f3_t, double a, double b, double c)
 

Variables

static constexpr std::string_view amrex::parser_f1_s []
 
static constexpr std::string_view amrex::parser_f2_s []
 
static constexpr std::string_view amrex::parser_f3_s []
 
static constexpr std::string_view amrex::parser_node_s []
 

Function Documentation

◆ amrex_parsererror()

void amrex_parsererror ( char const *  s,
  ... 
)