|
DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
#include "cace/ari/base.h"
Include dependency graph for numeric.h:
This graph shows which files directly or indirectly include this file:Typedefs | |
| typedef cace_ari_uvast(* | cace_binop_uvast) (cace_ari_uvast, cace_ari_uvast) |
| typedef cace_ari_vast(* | cace_binop_vast) (cace_ari_vast, cace_ari_vast) |
| typedef cace_ari_real64(* | cace_binop_real64) (cace_ari_real64, cace_ari_real64) |
| typedef int(* | cace_binop_timespec) (cace_ari_t *, const cace_ari_t *, const cace_ari_t *) |
Functions | |
| int | cace_amm_numeric_promote_type (cace_ari_type_t *result, const cace_ari_t *left, const cace_ari_t *right) |
| Determine the numeric type which is the least common promotion type. | |
| cace_ari_type_t | cace_eqiv_ari_type (const cace_ari_lit_t *lit) |
| Determine the equivalent ari type of the provided literal-value ARI. | |
| int | cace_numeric_integer_binary_operator (cace_ari_t *result, const cace_ari_t *lt_val, const cace_ari_t *rt_val, cace_binop_uvast op_uvast, cace_binop_vast op_vast) |
| Execute a numeric operation accepting two integers. | |
| int | cace_numeric_binary_operator (cace_ari_t *result, const cace_ari_t *lt_val, const cace_ari_t *rt_val, cace_binop_uvast op_uvast, cace_binop_vast op_vast, cace_binop_real64 op_real64, cace_binop_timespec op_timespec) |
| Execute a numeric operation accepting two parameters. | |
| int | cace_numeric_binary_comparison_operator (cace_ari_t *result, const cace_ari_t *lt_val, const cace_ari_t *rt_val, cace_binop_uvast op_uvast, cace_binop_vast op_vast, cace_binop_real64 op_real64) |
| Compare two numeric values. | |
| bool | cace_numeric_is_zero (const cace_ari_t *val) |
| Determine if given value is zero. | |
| bool | cace_is_numeric_type (cace_ari_type_t typ) |
| Determine if given type is numeric. | |
| bool | cace_has_numeric_prim_type (const cace_ari_t *obj) |
| Determine if given object is using a numeric primitive type. | |
| typedef cace_ari_real64(* cace_binop_real64) (cace_ari_real64, cace_ari_real64) |
| typedef int(* cace_binop_timespec) (cace_ari_t *, const cace_ari_t *, const cace_ari_t *) |
| typedef cace_ari_uvast(* cace_binop_uvast) (cace_ari_uvast, cace_ari_uvast) |
| typedef cace_ari_vast(* cace_binop_vast) (cace_ari_vast, cace_ari_vast) |
| int cace_amm_numeric_promote_type | ( | cace_ari_type_t * | result, |
| const cace_ari_t * | left, | ||
| const cace_ari_t * | right | ||
| ) |
Determine the numeric type which is the least common promotion type.
This is done in accordance with Section 6.11.2.1 of [amm].
| [out] | result | The promotion type if the return is zero. |
| [in] | left | One input value. |
| [in] | right | The other input value. |
References cace_ari_t::as_lit, CACE_ARI_TYPE_INT, CACE_ARI_TYPE_UVAST, CACE_ARI_TYPE_VAST, cace_eqiv_ari_type(), CHKERR1, cace_ari_t::is_ref, numeric_rank(), and result.
Referenced by ari_numeric_add(), cace_ari_equal(), cace_numeric_binary_comparison_operator(), cace_numeric_binary_operator(), and cace_numeric_integer_binary_operator().
| cace_ari_type_t cace_eqiv_ari_type | ( | const cace_ari_lit_t * | lit | ) |
Determine the equivalent ari type of the provided literal-value ARI.
| [in] | The | input value. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_int64, cace_ari_prim_val_u::as_uint64, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, CACE_ARI_TYPE_BYTE, CACE_ARI_TYPE_INT, CACE_ARI_TYPE_NULL, CACE_ARI_TYPE_REAL64, CACE_ARI_TYPE_UINT, CACE_ARI_TYPE_UVAST, CACE_ARI_TYPE_VAST, cace_ari_lit_t::has_ari_type, cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
Referenced by cace_amm_numeric_promote_type(), cace_numeric_binary_operator(), timespec_numeric_add(), timespec_numeric_div(), timespec_numeric_mul(), and timespec_numeric_sub().
| bool cace_has_numeric_prim_type | ( | const cace_ari_t * | obj | ) |
Determine if given object is using a numeric primitive type.
| [in] | val | Input object. |
References cace_ari_t::as_lit, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, CHKERR1, and cace_ari_lit_t::prim_type.
Referenced by cace_ari_equal(), timespec_numeric_div(), and timespec_numeric_mul().
| bool cace_is_numeric_type | ( | cace_ari_type_t | typ | ) |
Determine if given type is numeric.
| [in] | val | Input value. |
References CACE_ARI_TYPE_BYTE, CACE_ARI_TYPE_INT, CACE_ARI_TYPE_REAL32, CACE_ARI_TYPE_REAL64, CACE_ARI_TYPE_UINT, CACE_ARI_TYPE_UVAST, and CACE_ARI_TYPE_VAST.
| int cace_numeric_binary_comparison_operator | ( | cace_ari_t * | result, |
| const cace_ari_t * | lt_val, | ||
| const cace_ari_t * | rt_val, | ||
| cace_binop_uvast | op_uvast, | ||
| cace_binop_vast | op_vast, | ||
| cace_binop_real64 | op_real64 | ||
| ) |
Compare two numeric values.
| [out] | result | Output result as a boolean. |
| [in] | left | One input value. |
| [in] | right | The other input value. |
| [in] | op_uvast | Operator function for uvast types. |
| [in] | op_vast | Operator function for vast types. |
| [in] | op_real64 | Operator function for real64 types. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_prim_val_u::as_uint64, cace_amm_numeric_promote_type(), cace_amm_type_convert(), cace_amm_type_get_builtin(), cace_ari_deinit(), cace_ari_init_lit(), CACE_ARI_INIT_UNDEFINED, CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, CACE_ARI_TYPE_BOOL, CHKERR1, cace_ari_lit_t::has_ari_type, cace_ari_lit_t::prim_type, result, and cace_ari_lit_t::value.
Referenced by refda_adm_ietf_dtnma_agent_oper_compare_ge(), refda_adm_ietf_dtnma_agent_oper_compare_gt(), refda_adm_ietf_dtnma_agent_oper_compare_le(), and refda_adm_ietf_dtnma_agent_oper_compare_lt().
| int cace_numeric_binary_operator | ( | cace_ari_t * | result, |
| const cace_ari_t * | lt_val, | ||
| const cace_ari_t * | rt_val, | ||
| cace_binop_uvast | op_uvast, | ||
| cace_binop_vast | op_vast, | ||
| cace_binop_real64 | op_real64, | ||
| cace_binop_timespec | op_timespec | ||
| ) |
Execute a numeric operation accepting two parameters.
| [out] | result | Output value. |
| [in] | left | One input value. |
| [in] | right | The other input value. |
| [in] | op_uvast | Operator function for uvast types. |
| [in] | op_vast | Operator function for vast types. |
| [in] | op_real64 | Operator function for real64 types. |
| [in] | op_timespec | Operator function for timespec related types. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_prim_val_u::as_uint64, cace_amm_numeric_promote_type(), cace_amm_type_convert(), cace_amm_type_get_builtin(), cace_ari_deinit(), cace_ari_init_lit(), CACE_ARI_INIT_UNDEFINED, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, CACE_ARI_TYPE_TD, CACE_ARI_TYPE_TP, cace_eqiv_ari_type(), CHKERR1, cace_ari_lit_t::has_ari_type, cace_ari_lit_t::prim_type, result, and cace_ari_lit_t::value.
Referenced by refda_adm_ietf_dtnma_agent_oper_add(), refda_adm_ietf_dtnma_agent_oper_divide(), refda_adm_ietf_dtnma_agent_oper_multiply(), refda_adm_ietf_dtnma_agent_oper_remainder(), and refda_adm_ietf_dtnma_agent_oper_sub().
| int cace_numeric_integer_binary_operator | ( | cace_ari_t * | result, |
| const cace_ari_t * | lt_val, | ||
| const cace_ari_t * | rt_val, | ||
| cace_binop_uvast | op_uvast, | ||
| cace_binop_vast | op_vast | ||
| ) |
Execute a numeric operation accepting two integers.
| [out] | result | Output value. |
| [in] | left | One input value. |
| [in] | right | The other input value. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_prim_val_u::as_uint64, cace_amm_numeric_promote_type(), cace_amm_type_convert(), cace_amm_type_get_builtin(), cace_ari_deinit(), cace_ari_init_lit(), CACE_ARI_INIT_UNDEFINED, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, cace_ari_lit_t::has_ari_type, cace_ari_lit_t::prim_type, result, and cace_ari_lit_t::value.
Referenced by refda_adm_ietf_dtnma_agent_oper_bit_and(), refda_adm_ietf_dtnma_agent_oper_bit_or(), and refda_adm_ietf_dtnma_agent_oper_bit_xor().
| bool cace_numeric_is_zero | ( | const cace_ari_t * | val | ) |
Determine if given value is zero.
| [in] | val | Input value. |
References cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_prim_val_u::as_uint64, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_UINT64, CHKERR1, cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
Referenced by refda_adm_ietf_dtnma_agent_oper_divide(), and refda_adm_ietf_dtnma_agent_oper_remainder().