Files | |
| file | divider.h |
| High level APIs including combined quotient and remainder functions for 32 and 64 bit accelerated by the hardware dividerThese functions all call __aeabi_idiv0 or __aebi_ldiv0 on division by zero passing the largest applicably signed value. | |
Functions | |
| int32_t | div_s32s32 (int32_t a, int32_t b) |
| Integer divide of two signed 32-bit values. More... | |
| static int32_t | divmod_s32s32_rem (int32_t a, int32_t b, int32_t *rem) |
| Integer divide of two signed 32-bit values, with remainder. More... | |
| divmod_result_t | divmod_s32s32 (int32_t a, int32_t b) |
| Integer divide of two signed 32-bit values. More... | |
| uint32_t | div_u32u32 (uint32_t a, uint32_t b) |
| Integer divide of two unsigned 32-bit values. More... | |
| static uint32_t | divmod_u32u32_rem (uint32_t a, uint32_t b, uint32_t *rem) |
| Integer divide of two unsigned 32-bit values, with remainder. More... | |
| divmod_result_t | divmod_u32u32 (uint32_t a, uint32_t b) |
| Integer divide of two unsigned 32-bit values. More... | |
| int64_t | div_s64s64 (int64_t a, int64_t b) |
| Integer divide of two signed 64-bit values. More... | |
| int64_t | divmod_s64s64_rem (int64_t a, int64_t b, int64_t *rem) |
| Integer divide of two signed 64-bit values, with remainder. More... | |
| int64_t | divmod_s64s64 (int64_t a, int64_t b) |
| Integer divide of two signed 64-bit values. More... | |
| uint64_t | div_u64u64 (uint64_t a, uint64_t b) |
| Integer divide of two unsigned 64-bit values. More... | |
| uint64_t | divmod_u64u64_rem (uint64_t a, uint64_t b, uint64_t *rem) |
| Integer divide of two unsigned 64-bit values, with remainder. More... | |
| uint64_t | divmod_u64u64 (uint64_t a, uint64_t b) |
| Integer divide of two signed 64-bit values. More... | |
| int32_t | div_s32s32_unsafe (int32_t a, int32_t b) |
| Unsafe integer divide of two signed 32-bit values. More... | |
| int32_t | divmod_s32s32_rem_unsafe (int32_t a, int32_t b, int32_t *rem) |
| Unsafe integer divide of two signed 32-bit values, with remainder. More... | |
| int64_t | divmod_s32s32_unsafe (int32_t a, int32_t b) |
| Unsafe integer divide of two unsigned 32-bit values. More... | |
| uint32_t | div_u32u32_unsafe (uint32_t a, uint32_t b) |
| Unsafe integer divide of two unsigned 32-bit values. More... | |
| uint32_t | divmod_u32u32_rem_unsafe (uint32_t a, uint32_t b, uint32_t *rem) |
| Unsafe integer divide of two unsigned 32-bit values, with remainder. More... | |
| uint64_t | divmod_u32u32_unsafe (uint32_t a, uint32_t b) |
| Unsafe integer divide of two unsigned 32-bit values. More... | |
| int64_t | div_s64s64_unsafe (int64_t a, int64_t b) |
| Unsafe integer divide of two signed 64-bit values. More... | |
| int64_t | divmod_s64s64_rem_unsafe (int64_t a, int64_t b, int64_t *rem) |
| Unsafe integer divide of two signed 64-bit values, with remainder. More... | |
| int64_t | divmod_s64s64_unsafe (int64_t a, int64_t b) |
| Unsafe integer divide of two signed 64-bit values. More... | |
| uint64_t | div_u64u64_unsafe (uint64_t a, uint64_t b) |
| Unsafe integer divide of two unsigned 64-bit values. More... | |
| uint64_t | divmod_u64u64_rem_unsafe (uint64_t a, uint64_t b, uint64_t *rem) |
| Unsafe integer divide of two unsigned 64-bit values, with remainder. More... | |
| uint64_t | divmod_u64u64_unsafe (uint64_t a, uint64_t b) |
| Unsafe integer divide of two signed 64-bit values. More... | |
Optimized 32 and 64 bit division functions accelerated by the RP2040 hardware divider. Additionally provides integration with the C / and % operators
| int32_t div_s32s32 | ( | int32_t | a, |
| int32_t | b | ||
| ) |
Integer divide of two signed 32-bit values.
| a | Dividend |
| b | Divisor |
| int32_t div_s32s32_unsafe | ( | int32_t | a, |
| int32_t | b | ||
| ) |
Unsafe integer divide of two signed 32-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| int64_t div_s64s64 | ( | int64_t | a, |
| int64_t | b | ||
| ) |
Integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
| int64_t div_s64s64_unsafe | ( | int64_t | a, |
| int64_t | b | ||
| ) |
Unsafe integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| uint32_t div_u32u32 | ( | uint32_t | a, |
| uint32_t | b | ||
| ) |
Integer divide of two unsigned 32-bit values.
| a | Dividend |
| b | Divisor |
| uint32_t div_u32u32_unsafe | ( | uint32_t | a, |
| uint32_t | b | ||
| ) |
Unsafe integer divide of two unsigned 32-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| uint64_t div_u64u64 | ( | uint64_t | a, |
| uint64_t | b | ||
| ) |
Integer divide of two unsigned 64-bit values.
| a | Dividend |
| b | Divisor |
| uint64_t div_u64u64_unsafe | ( | uint64_t | a, |
| uint64_t | b | ||
| ) |
Unsafe integer divide of two unsigned 64-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| divmod_result_t divmod_s32s32 | ( | int32_t | a, |
| int32_t | b | ||
| ) |
Integer divide of two signed 32-bit values.
| a | Dividend |
| b | Divisor |
|
inlinestatic |
Integer divide of two signed 32-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
| int32_t divmod_s32s32_rem_unsafe | ( | int32_t | a, |
| int32_t | b, | ||
| int32_t * | rem | ||
| ) |
Unsafe integer divide of two signed 32-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
Do not use in interrupts
| int64_t divmod_s32s32_unsafe | ( | int32_t | a, |
| int32_t | b | ||
| ) |
Unsafe integer divide of two unsigned 32-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| int64_t divmod_s64s64 | ( | int64_t | a, |
| int64_t | b | ||
| ) |
Integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
| int64_t divmod_s64s64_rem | ( | int64_t | a, |
| int64_t | b, | ||
| int64_t * | rem | ||
| ) |
Integer divide of two signed 64-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
| int64_t divmod_s64s64_rem_unsafe | ( | int64_t | a, |
| int64_t | b, | ||
| int64_t * | rem | ||
| ) |
Unsafe integer divide of two signed 64-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
Do not use in interrupts
| int64_t divmod_s64s64_unsafe | ( | int64_t | a, |
| int64_t | b | ||
| ) |
Unsafe integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| divmod_result_t divmod_u32u32 | ( | uint32_t | a, |
| uint32_t | b | ||
| ) |
Integer divide of two unsigned 32-bit values.
| a | Dividend |
| b | Divisor |
|
inlinestatic |
Integer divide of two unsigned 32-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
| uint32_t divmod_u32u32_rem_unsafe | ( | uint32_t | a, |
| uint32_t | b, | ||
| uint32_t * | rem | ||
| ) |
Unsafe integer divide of two unsigned 32-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
Do not use in interrupts
| uint64_t divmod_u32u32_unsafe | ( | uint32_t | a, |
| uint32_t | b | ||
| ) |
Unsafe integer divide of two unsigned 32-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts
| uint64_t divmod_u64u64 | ( | uint64_t | a, |
| uint64_t | b | ||
| ) |
Integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
| uint64_t divmod_u64u64_rem | ( | uint64_t | a, |
| uint64_t | b, | ||
| uint64_t * | rem | ||
| ) |
Integer divide of two unsigned 64-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
| uint64_t divmod_u64u64_rem_unsafe | ( | uint64_t | a, |
| uint64_t | b, | ||
| uint64_t * | rem | ||
| ) |
Unsafe integer divide of two unsigned 64-bit values, with remainder.
| a | Dividend | |
| b | Divisor | |
| [out] | rem | The remainder of dividend/divisor |
Do not use in interrupts
| uint64_t divmod_u64u64_unsafe | ( | uint64_t | a, |
| uint64_t | b | ||
| ) |
Unsafe integer divide of two signed 64-bit values.
| a | Dividend |
| b | Divisor |
Do not use in interrupts