summaryrefslogtreecommitdiff
path: root/prism/util/pm_integer.h
diff options
context:
space:
mode:
Diffstat (limited to 'prism/util/pm_integer.h')
-rw-r--r--prism/util/pm_integer.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/prism/util/pm_integer.h b/prism/util/pm_integer.h
index 7f172988b3..91b28ad2f3 100644
--- a/prism/util/pm_integer.h
+++ b/prism/util/pm_integer.h
@@ -48,6 +48,9 @@ typedef struct {
* from the string itself.
*/
typedef enum {
+ /** The default decimal base, with no prefix. Leading 0s will be ignored. */
+ PM_INTEGER_BASE_DEFAULT,
+
/** The binary base, indicated by a 0b or 0B prefix. */
PM_INTEGER_BASE_BINARY,
@@ -79,15 +82,7 @@ typedef enum {
* @param start The start of the string.
* @param end The end of the string.
*/
-PRISM_EXPORTED_FUNCTION void pm_integer_parse(pm_integer_t *integer, pm_integer_base_t base, const uint8_t *start, const uint8_t *end);
-
-/**
- * Return the memory size of the integer.
- *
- * @param integer The integer to get the memory size of.
- * @return The size of the memory associated with the integer.
- */
-size_t pm_integer_memsize(const pm_integer_t *integer);
+void pm_integer_parse(pm_integer_t *integer, pm_integer_base_t base, const uint8_t *start, const uint8_t *end);
/**
* Compare two integers. This function returns -1 if the left integer is less
@@ -101,6 +96,18 @@ size_t pm_integer_memsize(const pm_integer_t *integer);
int pm_integer_compare(const pm_integer_t *left, const pm_integer_t *right);
/**
+ * Reduce a ratio of integers to its simplest form.
+ *
+ * If either the numerator or denominator do not fit into a 32-bit integer, then
+ * this function is a no-op. In the future, we may consider reducing even the
+ * larger numbers, but for now we're going to keep it simple.
+ *
+ * @param numerator The numerator of the ratio.
+ * @param denominator The denominator of the ratio.
+ */
+void pm_integers_reduce(pm_integer_t *numerator, pm_integer_t *denominator);
+
+/**
* Convert an integer to a decimal string.
*
* @param buffer The buffer to append the string to.