Antiprism 0.23

- Main Page
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Namespaces | Classes | Typedefs | Enumerations | Functions

# mu Namespace Reference

Namespace for mathematical applications. More...

## Namespaces
namespace | Test

| Namespace for test cases.
## Classes
class | Parser
| Mathematical expressions parser. More...
class | ParserBase
| Mathematical expressions parser (base parser engine). More...
class | ParserByteCode
| Bytecode implementation of the Math Parser. More...
class | ParserCallback
| Encapsulation of prototypes for a numerical parser function. More...
class | ParserErrorMsg
| A class that handles the error messages. More...
class | ParserError
| Error class of the parser. More...
class | ParserInt
| Mathematical expressions parser. More...
class | ParserStack
| Parser stack implementation. More...
struct | TypeInfo
| A class singling out integer types at compile time using template meta programming. More...
struct | MathImpl
| A template class for providing wrappers for essential math functions. More...
class | ParserToken
| Encapsulation of the data for a single formula token. More...
class | ParserTokenReader
| Token reader for the ParserBase class. More...
## Typedefs
typedef std::map< string_type, ParserCallback > | funmap_type
| Container for Callback objects.
typedef MUP_BASETYPE | value_type
| The numeric datatype used by the parser.
typedef MUP_STRING_TYPE | string_type
| The stringtype used by the parser.
typedef string_type::value_type | char_type
| The character type used by the parser.
typedef std::basic_stringstream < char_type, std::char_traits < char_type >, std::allocator < char_type > > | stringstream_type
| Typedef for easily using stringstream that respect the parser stringtype.
typedef std::map< string_type, value_type * > | varmap_type
| Type used for storing variables.
typedef std::map< string_type, value_type > | valmap_type
| Type used for storing constants.
typedef std::map< string_type, std::size_t > | strmap_type
| Type for assigning a string name to an index in the internal string table.
typedef value_type(* | generic_fun_type )()
| Callback type used for functions without arguments.
typedef value_type(* | fun_type0 )()
| Callback type used for functions without arguments.
typedef value_type(* | fun_type1 )(value_type)
| Callback type used for functions with a single arguments.
typedef value_type(* | fun_type2 )(value_type, value_type)
| Callback type used for functions with two arguments.
typedef value_type(* | fun_type3 )(value_type, value_type, value_type)
| Callback type used for functions with three arguments.
typedef value_type(* | fun_type4 )(value_type, value_type, value_type, value_type)
| Callback type used for functions with four arguments.
typedef value_type(* | fun_type5 )(value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | fun_type6 )(value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | fun_type7 )(value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | fun_type8 )(value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | fun_type9 )(value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | fun_type10 )(value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type0 )(int, int)
| Callback type used for functions without arguments.
typedef value_type(* | bulkfun_type1 )(int, int, value_type)
| Callback type used for functions with a single arguments.
typedef value_type(* | bulkfun_type2 )(int, int, value_type, value_type)
| Callback type used for functions with two arguments.
typedef value_type(* | bulkfun_type3 )(int, int, value_type, value_type, value_type)
| Callback type used for functions with three arguments.
typedef value_type(* | bulkfun_type4 )(int, int, value_type, value_type, value_type, value_type)
| Callback type used for functions with four arguments.
typedef value_type(* | bulkfun_type5 )(int, int, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type6 )(int, int, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type7 )(int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type8 )(int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type9 )(int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | bulkfun_type10 )(int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | multfun_type )(const value_type *, int)
| Callback type used for functions with a variable argument list.
typedef value_type(* | strfun_type1 )(const char_type *)
| Callback type used for functions taking a string as an argument.
typedef value_type(* | strfun_type2 )(const char_type *, value_type)
| Callback type used for functions taking a string and a value as arguments.
typedef value_type(* | strfun_type3 )(const char_type *, value_type, value_type)
| Callback type used for functions taking a string and two values as arguments.
typedef int(* | identfun_type )(const char_type *sExpr, int *nPos, value_type *fVal)
| Callback used for functions that identify values in a string.
typedef value_type *(* | facfun_type )(const char_type *, void *)
| Callback used for variable creation factory functions.
## Enumerations
enum | ECmdCode { cmLE = 0, cmGE = 1, cmNEQ = 2, cmEQ = 3, cmLT = 4, cmGT = 5, cmADD = 6, cmSUB = 7, cmMUL = 8, cmDIV = 9, cmPOW = 10 , cmASSIGN = 13, cmBO = 14, cmBC = 15, cmIF = 16, cmELSE = 17, cmENDIF = 18, cmARG_SEP = 19, cmVAR = 20, cmVAL = 21 , cmFUNC, cmFUNC_STR, cmFUNC_BULK, cmSTRING, cmOPRT_BIN, cmOPRT_POSTFIX, cmOPRT_INFIX, cmEND, cmUNKNOWN }
| Bytecode values. More...
enum | ETypeCode { tpSTR = 0, tpDBL = 1, tpVOID = 2 }
| Types internally used by the parser. More...
enum | EOprtAssociativity
| Parser operator precedence values.
enum | EOprtPrecedence { , prLOGIC = 3, prCMP = 4, prADD_SUB = 5, prMUL_DIV = 6, prPOW = 7, prINFIX = 6, prPOSTFIX = 6 }
| Parser operator precedence values. More...
enum | EErrorCodes { ecUNEXPECTED_OPERATOR = 0, ecUNASSIGNABLE_TOKEN = 1, ecUNEXPECTED_EOF = 2, ecUNEXPECTED_ARG_SEP = 3, ecUNEXPECTED_ARG = 4, ecUNEXPECTED_VAL = 5, ecUNEXPECTED_VAR = 6, ecUNEXPECTED_PARENS = 7, ecUNEXPECTED_STR = 8, ecSTRING_EXPECTED = 9, ecVAL_EXPECTED = 10, ecMISSING_PARENS = 11, ecUNEXPECTED_FUN = 12, ecUNTERMINATED_STRING = 13, ecTOO_MANY_PARAMS = 14, ecTOO_FEW_PARAMS = 15, ecOPRT_TYPE_CONFLICT = 16, ecSTR_RESULT = 17, ecINVALID_NAME = 18, ecINVALID_BINOP_IDENT = 19, ecINVALID_INFIX_IDENT = 20, ecINVALID_POSTFIX_IDENT = 21, ecBUILTIN_OVERLOAD = 22, ecINVALID_FUN_PTR = 23, ecINVALID_VAR_PTR = 24, ecEMPTY_EXPRESSION = 25, ecNAME_CONFLICT = 26, ecOPT_PRI = 27, ecDOMAIN_ERROR = 28, ecDIV_BY_ZERO = 29, ecGENERIC = 30, ecLOCALE = 31 , ecINTERNAL_ERROR = 35, ecCOUNT, ecUNDEFINED = -1 }
| Error codes. More...
## Functions
std::ostream & | console ()
| Encapsulate cout.
std::istream & | console_in ()
| Encapsulate cin.

## Detailed Description

Namespace for mathematical applications.

## Typedef Documentation

typedef string_type::value_type mu::char_type

The character type used by the parser.

Depends on wether UNICODE is used or not.

typedef MUP_STRING_TYPE mu::string_type

The stringtype used by the parser.

Depends on wether UNICODE is used or not.

typedef MUP_BASETYPE mu::value_type

The numeric datatype used by the parser.

Normally this is a floating point type either single or double precision.

## Enumeration Type Documentation

enum mu::ECmdCode

Bytecode values.

Attention:
  The order of the operator entries must match the order in ParserBase::c_DefaultOprt!

Enumerator:

  cmLE | Operator item: less or equal.
  cmGE | Operator item: greater or equal.
  cmNEQ | Operator item: not equal.
  cmEQ | Operator item: equals.
  cmLT | Operator item: less than.
  cmGT | Operator item: greater than.
  cmADD | Operator item: add.
  cmSUB | Operator item: subtract.
  cmMUL | Operator item: multiply.
  cmDIV | Operator item: division.
  cmPOW | Operator item: y to the power of ...
  cmASSIGN | Operator item: Assignment operator.
  cmBO | Operator item: opening bracket.
  cmBC | Operator item: closing bracket.
  cmIF | For use in the ternary if-then-else operator.
  cmELSE | For use in the ternary if-then-else operator.
  cmENDIF | For use in the ternary if-then-else operator.
  cmARG_SEP | function argument separator
  cmVAR | variable item
  cmVAL | value item
  cmFUNC | Code for a generic function item.
  cmFUNC_STR | Code for a function with a string parameter.
  cmFUNC_BULK | Special callbacks for Bulk mode with an additional parameter for the bulk index.
  cmSTRING | Code for a string token.
  cmOPRT_BIN | user defined binary operator
  cmOPRT_POSTFIX | code for postfix operators
  cmOPRT_INFIX | code for infix operators
  cmEND | end of formula
  cmUNKNOWN | uninitialized item

enum mu::EErrorCodes

Error codes.

Enumerator:

  ecUNEXPECTED_OPERATOR | Unexpected binary operator found.
  ecUNASSIGNABLE_TOKEN | Token cant be identified.
  ecUNEXPECTED_EOF | Unexpected end of formula. (Example: "2+sin(")
  ecUNEXPECTED_ARG_SEP | An unexpected comma has been found. (Example: "1,23")
  ecUNEXPECTED_ARG | An unexpected argument has been found.
  ecUNEXPECTED_VAL | An unexpected value token has been found.
  ecUNEXPECTED_VAR | An unexpected variable token has been found.
  ecUNEXPECTED_PARENS | Unexpected Parenthesis, opening or closing.
  ecUNEXPECTED_STR | A string has been found at an inapropriate position.
  ecSTRING_EXPECTED | A string function has been called with a different type of argument.
  ecVAL_EXPECTED | A numerical function has been called with a non value type of argument.
  ecMISSING_PARENS | Missing parens. (Example: "3*sin(3")
  ecUNEXPECTED_FUN | Unexpected function found. (Example: "sin(8)cos(9)")
  ecUNTERMINATED_STRING | unterminated string constant. (Example: "3*valueof("hello)")
  ecTOO_MANY_PARAMS | Too many function parameters.
  ecTOO_FEW_PARAMS | Too few function parameters. (Example: "ite(1<2,2)")
  ecOPRT_TYPE_CONFLICT | binary operators may only be applied to value items of the same type
  ecSTR_RESULT | result is a string
  ecINVALID_NAME | Invalid function, variable or constant name.
  ecINVALID_BINOP_IDENT | Invalid binary operator identifier.
  ecINVALID_INFIX_IDENT | Invalid function, variable or constant name.
  ecINVALID_POSTFIX_IDENT | Invalid function, variable or constant name.
  ecBUILTIN_OVERLOAD | Trying to overload builtin operator.
  ecINVALID_FUN_PTR | Invalid callback function pointer.
  ecINVALID_VAR_PTR | Invalid variable pointer.
  ecEMPTY_EXPRESSION | The Expression is empty.
  ecNAME_CONFLICT | Name conflict.
  ecOPT_PRI | Invalid operator priority.
  ecDOMAIN_ERROR | catch division by zero, sqrt(-1), log(0) (currently unused)
  ecDIV_BY_ZERO | Division by zero (currently unused)
  ecGENERIC | Generic error.
  ecLOCALE | Conflict with current locale.
  ecINTERNAL_ERROR | Internal error of any kind.
  ecCOUNT | This is no error code, It just stores just the total number of error codes.
  ecUNDEFINED | Undefined message, placeholder to detect unassigned error messages.

enum mu::EOprtPrecedence

Parser operator precedence values.

Enumerator:

  prLOGIC | logic operators
  prCMP | comparsion operators
  prADD_SUB | addition
  prMUL_DIV | multiplication/division
  prPOW | power operator priority (highest)
  prINFIX | Signs have a higher priority than ADD_SUB, but lower than power operator.
  prPOSTFIX | Postfix operator priority (currently unused)

enum mu::ETypeCode

Types internally used by the parser.

Enumerator:

  tpSTR | String type (Function arguments and constants only, no string variables)
  tpDBL | Floating point variables.
  tpVOID | Undefined type.

## Function Documentation

std::ostream& mu::console | ( |  | ) | `[inline]`

Encapsulate cout.

Used for supporting UNICODE more easily.

std::istream& mu::console_in | ( |  | ) | `[inline]`

Encapsulate cin.

Used for supporting UNICODE more easily.