FloatDiv
FloatDiv
Description
Generic division convenience macro for Float.
Parameters
| Name | Direction | Description |
|---|---|---|
result |
out | Destination for the quotient |
a |
in | Dividend |
b |
in | Divisor selected through generic dispatch |
precision |
in | Decimal precision to retain |
Usage example (from documentation)
FloatDiv("ient, &value, 3.0, 8);Usage example (Cross-references)
Usage examples (Cross-references)
- In
Float.c:630:
}
void(FloatDiv)(Float *result, Float *a, Float *b, u64 precision) {
Float temp = FloatInit();
Int scale = IntInit();- In
Float.c:665:
Float rhs = MISRA_PRIV_FloatFromInt(b);
FloatDiv(result, a, &rhs, precision);
FloatDeinit(&rhs);
}- In
Float.c:672:
Float rhs = MISRA_PRIV_FloatFromU64(b);
FloatDiv(result, a, &rhs, precision);
FloatDeinit(&rhs);
}- In
Float.c:679:
Float rhs = MISRA_PRIV_FloatFromI64(b);
FloatDiv(result, a, &rhs, precision);
FloatDeinit(&rhs);
}- In
Float.c:686:
Float rhs = float_from_f32_value(b);
FloatDiv(result, a, &rhs, precision);
FloatDeinit(&rhs);
}- In
Float.c:693:
Float rhs = float_from_f64_value(b);
FloatDiv(result, a, &rhs, precision);
FloatDeinit(&rhs);
}- In
Float.Math.c:294:
bool test_float_div_small_small(void) {
WriteFmt("Testing FloatDiv with small floats\n");
Float a = FloatFromStr("1");- In
Float.Math.c:301:
Str text = StrInit();
FloatDiv(&result_value, &a, &b, 3);
text = FloatToStr(&result_value);- In
Float.Math.c:314:
bool test_float_div_very_large_small(void) {
WriteFmt("Testing FloatDiv with very large and small floats\n");
Float a = FloatFromStr(FLOAT_TEST_VERY_LARGE_TWOS);- In
Float.Math.c:321:
Str text = StrInit();
FloatDiv(&result_value, &a, &b, 0);
text = FloatToStr(&result_value);- In
Float.Math.c:334:
bool test_float_div_generic(void) {
WriteFmt("Testing FloatDiv generic dispatch\n");
Float a = FloatFromStr("7.5");- In
Float.Math.c:342:
Str text = StrInit();
FloatDiv(&result_value, &a, b, 1);
text = FloatToStr(&result_value);
bool result = strcmp(text.data, "3") == 0;- In
Float.Math.c:347:
StrDeinit(&text);
FloatDiv(&result_value, &a, whole, 1);
text = FloatToStr(&result_value);
result = result && (strcmp(text.data, "2.5") == 0);- In
Float.Math.c:352:
StrDeinit(&text);
FloatDiv(&result_value, &a, 3u, 1);
text = FloatToStr(&result_value);
result = result && (strcmp(text.data, "2.5") == 0);- In
Float.Math.c:357:
StrDeinit(&text);
FloatDiv(&result_value, &a, -3, 1);
text = FloatToStr(&result_value);
result = result && (strcmp(text.data, "-2.5") == 0);- In
Float.Math.c:362:
StrDeinit(&text);
FloatDiv(&result_value, &a, 0.5f, 1);
text = FloatToStr(&result_value);
result = result && (strcmp(text.data, "15") == 0);- In
Float.Math.c:367:
StrDeinit(&text);
FloatDiv(&result_value, &a, 0.5, 1);
text = FloatToStr(&result_value);
result = result && (strcmp(text.data, "15") == 0);- In
Float.Math.c:380:
bool test_float_div_by_zero(void) {
WriteFmt("Testing FloatDiv divide-by-zero handling\n");
Float a = FloatFromStr("1");- In
Float.Math.c:386:
Float r = FloatInit();
FloatDiv(&r, &a, &b, 4);
return false;
}- In
Math.h:95:
/// TAGS: Float, Math, Divide, Precision
///
void (FloatDiv)(Float *result, Float *a, Float *b, u64 precision);
#ifndef __cplusplus
# define MISRA_FLOAT_ADD_DISPATCH(rhs) \- In
Math.h:170:
(rhs), \
Float: MISRA_PRIV_FloatDivValueFloat, \
Float *: FloatDiv, \
const Float *: MISRA_PRIV_FloatDivConstFloat, \
Int: MISRA_PRIV_FloatDivValueInt, \
Last updated on