From 72f791227cf3f0e835e62ff22953c005a40882c6 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 17 May 2026 17:57:57 +0300 Subject: feat(BigInt): Implement create/free and summation, subtraction --- BigInt.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 BigInt.h (limited to 'BigInt.h') diff --git a/BigInt.h b/BigInt.h new file mode 100644 index 0000000..2324143 --- /dev/null +++ b/BigInt.h @@ -0,0 +1,32 @@ +#ifndef _BIGINT +#define _BIGINT + +#include "MemoryManager.h" + +typedef void* BigInt; + +/* Create */ + +BigInt B_new(MemoryManager *mm, int value); +BigInt B_newstr(MemoryManager *mm, const char* str); +BigInt B_dup(MemoryManager *mm, BigInt bigint); + +BigInt B_newsum(MemoryManager *mm, BigInt a, BigInt b); +BigInt B_newsub(MemoryManager *mm, BigInt a, BigInt b); + +/* Free */ + +Result B_free(BigInt *bigint); + +/* Modify */ + +Result B_sum(BigInt *a, BigInt b); +Result B_sub(BigInt *a, BigInt b); + +/* Get */ + +usize B_bytes(BigInt x); +usize B_bitwidth(BigInt x); +char* B_tostr(MemoryManager *mm, BigInt x); + +#endif /* _BIGINT */ -- cgit v1.2.3