Get rid of clib in big int, introduce message api, add stringify message
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user