big: Add constants.

This commit is contained in:
Jeroen van Rijn
2021-08-11 20:59:52 +02:00
parent 97d80d03f9
commit fc0a92f8ac
3 changed files with 133 additions and 59 deletions
+32 -7
View File
@@ -39,6 +39,7 @@ _SQR_KARATSUBA_CUTOFF,
_MUL_TOOM_CUTOFF,
_SQR_TOOM_CUTOFF,
);
}
print_timings :: proc() {
@@ -95,16 +96,15 @@ print :: proc(name: string, a: ^Int, base := i8(10), print_name := false, newlin
defer delete(as);
cb, _ := count_bits(a);
if print_name {
fmt.printf("%v ", name);
}
if print_extra_info {
fmt.printf("(base: %v, bits used: %v): %v", base, cb, as);
} else {
fmt.printf("%v", as);
fmt.printf("%v", name);
}
if err != nil {
fmt.printf("%v (error: %v | %v)", name, err, a);
}
fmt.printf("%v", as);
if print_extra_info {
fmt.printf(" (base: %v, bits used: %v, flags: %v)", base, cb, a.flags);
}
if newline {
fmt.println();
}
@@ -118,6 +118,31 @@ demo :: proc() {
a, b, c, d, e, f := &Int{}, &Int{}, &Int{}, &Int{}, &Int{}, &Int{};
defer destroy(a, b, c, d, e, f);
fmt.println();
print(" ONE: ", ONE, 10, true, true, true);
fmt.println();
one(a);
print(" one: ", a, 10, true, true, true);
fmt.println();
minus_one(a);
print("-one: ", a, 10, true, true, true);
fmt.println();
nan(a);
print(" nan: ", a, 10, true, true, true);
fmt.println();
inf(a);
print(" inf: ", a, 10, true, true, true);
fmt.println();
minus_inf(a);
print("-inf: ", a, 10, true, true, true);
fmt.println();
factorial(a, 128); // Untimed warmup.
N :: 128;
@@ -145,8 +170,8 @@ main :: proc() {
mem.tracking_allocator_init(&ta, context.allocator);
context.allocator = mem.tracking_allocator(&ta);
// print_configation();
demo();
print_timings();
if len(ta.allocation_map) > 0 {