diff options
author | David Timber <dxdt@dev.snart.me> | 2024-11-02 22:33:52 +0100 |
---|---|---|
committer | David Timber <dxdt@dev.snart.me> | 2024-11-02 22:33:52 +0100 |
commit | 0bf2a61aed938df9a2dd5188818255c977d4a77b (patch) | |
tree | 170277d98155b9ff5c34743212edac9f0889d846 /writeups | |
parent | 66f7f30bd0e598864d782117c1da2137a524eb2e (diff) |
writeups/multiprecision: fix print error ...
- Remove '--suppress-common-lines' option when producing diff
Diffstat (limited to 'writeups')
-rw-r--r-- | writeups/multiprecision/Makefile | 6 | ||||
-rwxr-xr-x | writeups/multiprecision/fibo.mjs | 33 |
2 files changed, 15 insertions, 24 deletions
diff --git a/writeups/multiprecision/Makefile b/writeups/multiprecision/Makefile index cdb10d8..cd266c6 100644 --- a/writeups/multiprecision/Makefile +++ b/writeups/multiprecision/Makefile @@ -16,7 +16,7 @@ b: fibo.mjs mv b.tmp b c: fibo.mjs - ./fibo.mjs 0 | cat -n > c.tmp + ./fibo.mjs 2 | cat -n > c.tmp mv c.tmp c d: fibo-crude-mp @@ -32,11 +32,11 @@ test: a b d diff b d sxsdiff-a-c: a c - ! diff --suppress-common-lines -y a c > sxsdiff-a-c.tmp + ! diff -y a c > sxsdiff-a-c.tmp mv sxsdiff-a-c.tmp sxsdiff-a-c sxsdiff-c-e: c e - ! diff --suppress-common-lines -y c e > sxsdiff-c-e.tmp + ! diff -y c e > sxsdiff-c-e.tmp mv sxsdiff-c-e.tmp sxsdiff-c-e doplot: a c e diff --git a/writeups/multiprecision/fibo.mjs b/writeups/multiprecision/fibo.mjs index 1cc9b10..223581f 100755 --- a/writeups/multiprecision/fibo.mjs +++ b/writeups/multiprecision/fibo.mjs @@ -1,37 +1,28 @@ #!/bin/env node -function do_fibo (num_f) { +function do_fibo (num_f, str_f) { let a, b, c; + if (typeof str_f === 'undefined') { + str_f = (n) => n.toString(); + } + a = num_f('0'); b = num_f('1'); for (let i = 0; i < 101; i += 1) { c = a + b; - console.info(c.toString()); + console.info(str_f(c)); b = a; a = c; } } -function parse_flag (s) { - s = s.toLowerCase(); - - if (s === 'true') { - return true; - } - else if (s === 'false') { - return false; - } +const flag = process.argv.length > 2 ? process.argv[2] : 0; - return Number(s); -} - -const flag = process.argv.length > 2 ? parse_flag(process.argv[2]) : true; - -if (flag) { - do_fibo(BigInt); -} -else { - do_fibo(Number); +switch (flag) { +case '0': do_fibo(Number); break; +case '1': do_fibo(BigInt); break; +case '2': do_fibo(Number, (n) => n.toFixed()); break; +default: throw new Error(process.argv[1] + ": " + flag + ": unknown flag"); } |