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. |
#include <math.hpp>
Public Method Index: | |
ALIB_API | Math (Compiler &compiler) |
virtual | ~Math () override |
Virtual destructor. | |
Public Method Index: inherited from Calculus | |
Calculus (const NString &name, Compiler &compiler, CompilePriorities pPriority) | |
virtual | ~Calculus () override |
Virtual destructor. | |
ALIB_API 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_API void | AddOperators (OperatorTableEntry *table, size_t length) |
template<size_t TCapacity> | |
void | AddOperators (OperatorTableEntry(&table)[TCapacity]) |
virtual ALIB_API bool | TryCompilation (CIAutoCast &autoCast) override |
virtual ALIB_API bool | TryCompilation (CIBinaryOp &ciBinaryOp) override |
virtual ALIB_API bool | TryCompilation (CIFunction &ciFunction) override |
virtual ALIB_API bool | TryCompilation (CIUnaryOp &ciUnaryOp) override |
Public Method Index: inherited from CompilerPlugin | |
CompilerPlugin (const NString &name, Compiler &compiler, CompilePriorities pPriority) | |
virtual | ~CompilerPlugin () |
Virtual destructor. | |
Public Method Index: inherited from Plugin< Compiler, CompilePriorities > | |
PrioritiesType | GetPriority () const |
Additional Inherited Members | |
Public Type Index: inherited from Calculus | |
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 |
Public Type Index: inherited from Plugin< Compiler, CompilePriorities > | |
using | PluginType |
This exposes the template parameter TPlugin to the outer world. | |
using | PrioritiesType |
This exposes the template parameter pTPlugin to the outer world. | |
Public Static Field Index: inherited from Calculus | |
static constexpr CTInvokable | CTI = true |
static constexpr CTInvokable | ETI = false |
Public Field Index: inherited from Calculus | |
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 |
Public Field Index: inherited from CompilerPlugin | |
Compiler & | Cmplr |
The compiler that this plug-in is attached to. | |
const NString | Name |
Protected Field Index: inherited from Plugin< Compiler, CompilePriorities > | |
PrioritiesType | priority |
The priority of this plug-in. | |
Protected Method Index: inherited from Plugin< Compiler, CompilePriorities > | |
Plugin (PrioritiesType pPriority) | |
Constructor. Creates the hash maps.
compiler | The compiler we will get attached to. |