|
dynamiC
0.1
|
Implementation of dynamiC operations module. More...
#include "dynamic.h"Go to the source code of this file.
Macros | |
| #define | max_type(A, B) (DYN_TYPE(A) > DYN_TYPE(B)) ? DYN_TYPE(A) : DYN_TYPE(B) |
| #define | CHECK_COPY_REFERENCE(X1) |
| #define | CHECK_NOCOPY_REFERENCE(X2) |
| #define | CHECK_REFERENCE(X1, X2) |
Functions | |
| trilean | dyn_op_neg (dyn_c *dyn) |
| Negate dynamic value in param dyn. More... | |
| trilean | dyn_op_add (dyn_c *dyn1, dyn_c *dyn2) |
| Add dyn2 to dyn1. More... | |
| trilean | dyn_op_sub (dyn_c *dyn1, dyn_c *dyn2) |
| Subtract dyn2 from dyn1. More... | |
| trilean | dyn_op_mul (dyn_c *dyn1, dyn_c *dyn2) |
| Multiply dyn1 with dyn2. More... | |
| trilean | dyn_op_div (dyn_c *dyn1, dyn_c *dyn2) |
| Divide dyn1 by dyn2. More... | |
| trilean | dyn_op_mod (dyn_c *dyn1, dyn_c *dyn2) |
| dyn1 Modulo dyn2 More... | |
| float | fast_approx_pow (float x, float p) |
| Power function approximation x^y. More... | |
| trilean | dyn_op_pow (dyn_c *dyn1, dyn_c *dyn2) |
| dyn1 to the power of dyn2 More... | |
| trilean | dyn_get_bool_3 (const dyn_c *dyn) |
| Returns the trinary truth value (DYN_TRUE|DYN_FALSE|DYN_NONE) of an element. More... | |
| trilean | dyn_op_and (dyn_c *dyn1, dyn_c *dyn2) |
| Logical (trinary) AND operation. More... | |
| trilean | dyn_op_or (dyn_c *dyn1, dyn_c *dyn2) |
| Logical (trinary) OR operation. More... | |
| trilean | dyn_op_xor (dyn_c *dyn1, dyn_c *dyn2) |
| Logical (trinary) XOR operation. More... | |
| trilean | dyn_op_not (dyn_c *dyn) |
| Logical (trinary) Negation. More... | |
| dyn_char | dyn_op_cmp (dyn_c *dyn1, dyn_c *dyn2) |
| Common compare function for dynamic elements. More... | |
| trilean | dyn_op_id (dyn_c *dyn1, dyn_c *dyn2) |
| Type and Value Equality. More... | |
| trilean | dyn_op_eq (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Equality. More... | |
| trilean | dyn_op_ne (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Not Equal. More... | |
| trilean | dyn_op_lt (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Less Than. More... | |
| trilean | dyn_op_ge (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Greater Than or Equal. More... | |
| trilean | dyn_op_gt (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Greater Than. More... | |
| trilean | dyn_op_le (dyn_c *dyn1, dyn_c *dyn2) |
| Relational Less Than or Equal. More... | |
| trilean | dyn_op_in (dyn_c *element, dyn_c *container) |
| Check if dyn2 is element of dyn1. More... | |
| trilean | dyn_op_b_not (dyn_c *dyn) |
| Binary complement. | |
| trilean | dyn_op_b_and (dyn_c *dyn1, dyn_c *dyn2) |
| Binary AND. | |
| trilean | dyn_op_b_or (dyn_c *dyn1, dyn_c *dyn2) |
| Binary OR. | |
| trilean | dyn_op_b_xor (dyn_c *dyn1, dyn_c *dyn2) |
| Binary XOR. | |
| trilean | dyn_op_b_shift_l (dyn_c *dyn1, dyn_c *dyn2) |
| Binary shift left. | |
| trilean | dyn_op_b_shift_r (dyn_c *dyn1, dyn_c *dyn2) |
| Binary shift right. | |
Implementation of dynamiC operations module.
This project is released under the MIT-License.
Definition in file dynamic_op.c.
| #define CHECK_COPY_REFERENCE | ( | X1 | ) |
Definition at line 19 of file dynamic_op.c.
| #define CHECK_NOCOPY_REFERENCE | ( | X2 | ) |
Definition at line 25 of file dynamic_op.c.
| #define CHECK_REFERENCE | ( | X1, | |
| X2 | |||
| ) |
Definition at line 30 of file dynamic_op.c.
Common compare function for dynamic elements.
Basic compare function for dynamic data dypes, based on the relation between the input parameters, different values are returned, see the list below.
| dyn1 | first dynamic parameter |
| dyn2 | second dynamic parameter |
| 0 | if dyn1 == dyn2 |
| 1 | if dyn1 < dyn2 |
| 2 | if dyn1 > dyn2 |
| 3 | if dyn1 != dyn2 |
| 4 | if not comparable due to different data types (STRING <= SET) |
Definition at line 683 of file dynamic_op.c.
Referenced by dyn_op_eq(), dyn_op_gt(), dyn_op_lt(), and dyn_op_ne().
| float fast_approx_pow | ( | float | x, |
| float | p | ||
| ) |
Power function approximation x^y.
This implementation is based on the fastapprox library of Paul Minero.
| x | base value |
| y | exponential value |
approx. float value
Definition at line 417 of file dynamic_op.c.
1.8.13