Skip to content

IntDiv

IntDiv

Description

Generic division convenience macro.

Parameters

Name Direction Description
result out Destination for the quotient
dividend in Dividend
divisor in Divisor selected through generic dispatch

Usage example (from documentation)

  IntDiv(&quotient, &value, 10u);

Usage example (Cross-references)

Usage examples (Cross-references)
        scale = float_pow10(precision);
        IntMul(&scaled, &a->significand, &scale);
        IntDiv(&temp.significand, &scaled, &b->significand);
    
        temp.negative = FloatIsNegative(a) != FloatIsNegative(b);
    }
    
    void(IntDiv)(Int *result, Int *dividend, Int *divisor) {
        Int quotient  = IntInit();
        Int remainder = IntInit();
        Int divisor_value = MISRA_PRIV_IntFromU64(divisor);
    
        IntDiv(result, dividend, &divisor_value);
        IntDeinit(&divisor_value);
    }
        Int divisor_value = MISRA_PRIV_IntFromI64(divisor);
    
        IntDiv(result, dividend, &divisor_value);
        IntDeinit(&divisor_value);
    }
    
        IntGCD(&gcd, a, b);
        IntDiv(&quotient, a, &gcd);
        IntMul(&lcm, &quotient, b);
    
    bool test_int_div(void) {
        WriteFmt("Testing IntDiv generic dispatch\n");
    
        Int dividend = IntFrom(126);
        Int result_value = IntInit();
    
        IntDiv(&result_value, &dividend, 10u);
    
        bool result = IntToU64(&result_value) == 12;
    
    bool test_int_div_scalar_zero_divisor(void) {
        WriteFmt("Testing IntDiv scalar zero-divisor handling\n");
    
        Int dividend = IntFrom(10);
        Int quotient = IntInit();
    
        IntDiv(&quotient, &dividend, 0u);
        return false;
    }
    /// TAGS: Int, Math, Divide, Quotient
    ///
    void (IntDiv)(Int *result, Int *dividend, Int *divisor);
    ///
    /// Divide one integer by another only when the division is exact.
                (divisor),                                                                                                 \
                Int: MISRA_PRIV_IntDivValue,                                                                               \
                Int *: IntDiv,                                                                                             \
                const Int *: MISRA_PRIV_IntDivConst,                                                                       \
                unsigned char: MISRA_PRIV_IntDivU64,                                                                       \
Last updated on