Compiler plug-in that provides mathematical functions.
All identifier and function names are defined case-insensitive and can not be abbreviated with the exception of remainder (shortenable up to remain) and random (shortenable up to rand).
Constants:
Type | Name | Description |
Float | PI | The ratio of a circle's circumference to its diameter. |
Float | E | Euler's number. |
Functions:
Return Type | Name | Signature | Description |
Float | abs | Integer | Computes the absolute value of an integer number. |
Float | abs | Float | Computes the absolute value of a floating point number. |
Float | ceil | Float | Returns the nearest integer not less than the given value. |
Float | floor | Float | Returns the nearest integer not greater than the given value. |
Float | trunc | Float | Returns the nearest integer not greater in magnitude than the given value. |
Float | round | Float | Returns the nearest integer, rounding away from zero in halfway cases. |
Integer | rint | Float | Returns the nearest integer, rounding away from zero in halfway cases. |
Float | max | Integer,Integer | Returns the greater of two integer numbers. |
Float | max | Float, Float | Returns the greater of two floating point numbers. |
Float | min | Integer,Integer | Returns the smaller of two integer numbers. |
Float | min | Float, Float | Returns the smaller of two floating point numbers. |
Float | remainder | Float,Float | Computes the remainder of the floating point division of the first argument by the second argument. |
Float | random | Float | Returns a random number in the range [0.0 ... 1.0[. Note uses std::rand . No seeding is performed. Invoke std::srand before using this function for the first time, if numbers should change between different runs of the software. |
Float | sin | Float | Computes sine. |
Float | asin | Float | Computes cosine. |
Float | cos | Float | Computes tangent. |
Float | acos | Float | Computes arc sine. |
Float | tan | Float | Computes arc cosine. |
Float | atan | Float | Computes arc tangent. |
Float | sinh | Float | Computes hyperbolic sine. |
Float | asinh | Float | Computes hyperbolic cosine. |
Float | cosh | Float | Computes hyperbolic tangent. |
Float | acosh | Float | Computes inverse hyperbolic sine. |
Float | tanh | Float | Computes inverse hyperbolic cosine. |
Float | atanh | Float | Computes inverse hyperbolic tangent. |
Float | exp | Float | Computes e raised to the given power. |
Float | exp2 | Float | Computes 2.0 raised to the given power. |
Float | exp10 | Float | Computes 10.0 raised to the given power. |
Float | log | Float | Computes natural base (e) logarithm. |
Float | log10 | Float | Computes common base (10) logarithm. |
Float | log2 | Float | Computes base 2.0 logarithm. |
Float | pow | Float, Float | Raises a given number to the given power. |
Float | pow10 | Float | Raises 10 to the given power. |
Float | sqrt | Float | Computes square root of a given number. |
Float | cbrt | Float | Computes cubic root of a given number. |
Definition at line 66 of file math.inl.
|
ALIB_DLL | Math (Compiler &compiler) |
|
virtual | ~Math () override |
| Virtual destructor.
|
|
| Calculus (const NString &name, Compiler &compiler, CompilePriorities pPriority) |
|
virtual | ~Calculus () override |
| Virtual destructor.
|
|
ALIB_DLL void | AddBinaryOpOptimizations (BinaryOpOptimizationsTableEntry *table, size_t length) |
|
template<size_t TCapacity> |
void | AddBinaryOpOptimizations (BinaryOpOptimizationsTableEntry(&table)[TCapacity]) |
|
void | AddOperator (const String &op, Type lhsType, Type rhsType, CallbackDecl callback, const char *dbgCallbackName, Type resultType, CTInvokable cti) |
|
void | AddOperatorAlias (const String &alias, Type lhsType, Type rhsType, const String &op) |
|
void | AddOperatorAliases (OperatorAliasTableEntry *table, size_t length) |
|
template<size_t TCapacity> |
void | AddOperatorAliases (OperatorAliasTableEntry(&table)[TCapacity]) |
|
ALIB_DLL void | AddOperators (OperatorTableEntry *table, size_t length) |
|
template<size_t TCapacity> |
void | AddOperators (OperatorTableEntry(&table)[TCapacity]) |
|
virtual ALIB_DLL bool | TryCompilation (CIAutoCast &autoCast) override |
|
virtual ALIB_DLL bool | TryCompilation (CIBinaryOp &ciBinaryOp) override |
|
virtual ALIB_DLL bool | TryCompilation (CIFunction &ciFunction) override |
|
virtual ALIB_DLL bool | TryCompilation (CIUnaryOp &ciUnaryOp) override |
|
| CompilerPlugin (const NString &name, Compiler &compiler, CompilePriorities pPriority) |
|
virtual | ~CompilerPlugin () |
| Virtual destructor.
|
|
PrioritiesType | GetPriority () const |
|
|
using | BinaryOpOptimizationsTableEntry = const std::tuple<String, lang::Side, Type, const Box&, const Box&> |
|
using | CTInvokable = bool |
|
using | OperatorAliasTableEntry = const std::tuple<String, Type, Type, String> |
|
using | OperatorTableEntry |
|
using | PluginType |
| This exposes the template parameter TPlugin to the outer world.
|
|
using | PrioritiesType |
| This exposes the template parameter pTPlugin to the outer world.
|
|
static constexpr CTInvokable | CTI = true |
|
static constexpr CTInvokable | ETI = false |
|
MonoAllocator | allocator |
|
std::vector< AutoCastEntry > | AutoCasts |
| List of auto-casts to be compiled by this plug-in.
|
|
HashMap< MonoAllocator, BinOpOptKey, Box, BinOpOptKey::Hash, BinOpOptKey::EqualTo > | BinaryOperatorOptimizations |
|
std::vector< ConstantIdentifierEntry > | ConstantIdentifiers |
| List of identifiers that return constant values to be compiled by this plug-in.
|
|
std::vector< FunctionEntry > | Functions |
| List of functions to be compiled by this plug-in.
|
|
HashMap< MonoAllocator, OperatorKey, String, OperatorKey::Hash, OperatorKey::EqualTo > | OperatorAliases |
|
HashMap< MonoAllocator, OperatorKey, std::tuple< CallbackDecl, Box, CTInvokable ALIB_DBG(, const char *) >, OperatorKey::Hash, OperatorKey::EqualTo > | Operators |
|
Compiler & | Cmplr |
| The compiler that this plug-in is attached to.
|
|
const NString | Name |
|
PrioritiesType | priority |
| The priority of this plug-in.
|
|
| Plugin (PrioritiesType pPriority) |
|