Get rid of clib in big int, introduce message api, add stringify message

This commit is contained in:
Krzosa Karol
2023-01-01 19:51:35 +01:00
parent ec66f02e46
commit aa994c999a
7 changed files with 82 additions and 92 deletions

View File

@@ -1,7 +1,6 @@
// Copyright (c) 2019 Christoffer Lerno. All rights reserved.
// Use of this source code is governed by the GNU LGPLv3.0 license
// a copy of which can be found in the LICENSE file.
#include <string.h>
#define Set_BigInt_Arena(x) BigInt_Arena bigint_allocator(x)
struct BigInt_Arena{
@@ -55,7 +54,7 @@ bigint_copy(Allocator *allocator, BigInt *src){
dest.digit_count = src->digit_count;
dest.digits = allocate_array(allocator, uint64_t, dest.digit_count);
memcpy(dest.digits, src->digits, sizeof(uint64_t) * dest.digit_count);
memory_copy(dest.digits, src->digits, sizeof(uint64_t) * dest.digit_count);
return dest;
}
@@ -186,7 +185,7 @@ void bigint_init_bigint(BigInt *dest, const BigInt *src)
dest->is_negative = src->is_negative;
dest->digit_count = src->digit_count;
dest->digits = ALLOC_DIGITS(dest->digit_count);
memcpy(dest->digits, src->digits, sizeof(uint64_t) * dest->digit_count);
memory_copy(dest->digits, src->digits, sizeof(uint64_t) * dest->digit_count);
}
void bigint_negate(BigInt *dest, const BigInt *source)
@@ -329,7 +328,7 @@ void bigint_init_data(BigInt *dest, const uint64_t *digits, unsigned int digit_c
dest->digit_count = digit_count;
dest->is_negative = is_negative;
dest->digits = ALLOC_DIGITS(digit_count);
memcpy(dest->digits, digits, sizeof(uint64_t) * digit_count);
memory_copy(dest->digits, digits, sizeof(uint64_t) * digit_count);
normalize(dest);
}
@@ -344,7 +343,7 @@ void bigint_init_bigfloat(BigInt *dest, const BigFloat *op) {
if (dest->is_negative) {
f128M_sub(&zero, &op->value, &abs_val);
} else {
memcpy(&abs_val, &op->value, sizeof(float128_t));
memory_copy(&abs_val, &op->value, sizeof(float128_t));
}
float128_t max_u64;