From ca563886ec50b5cf17694081c236397892482a78 Mon Sep 17 00:00:00 2001 From: TudbuT Date: Wed, 4 Sep 2024 23:06:17 +0200 Subject: [PATCH] small bugfixes, add precision setting --- mkpolynomial.spl | 16 +++++++++++++--- polysine.txt | 28 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 polysine.txt diff --git a/mkpolynomial.spl b/mkpolynomial.spl index a13a73a..84f72f8 100644 --- a/mkpolynomial.spl +++ b/mkpolynomial.spl @@ -11,14 +11,16 @@ func main { status | with args ; clear if { "." [ 27 _int ] _str ".[H.[2J.[3J" :replace print } - "[-] mkpolynomial v0.2 by TudbuT" println - "[-] commands: degree, match, delete , list, ., clear, exit" println + "[-] mkpolynomial v0.3 by TudbuT" println + "[-] commands: degree, match, delete , precision , list, ., clear, exit" println "[-] args: -d, -c, -h" println help if { 0 exit } "[-] " println + def precision 12 =precision + def f def vardecl def degree "0" =degree @@ -57,7 +59,7 @@ func main { status | with args ; } "delete " expr:starts-with if { def idx ("delete " _array:len) (expr _array:len) (expr _array:sub) _str _mega =idx - idx 0 gt idx exprs:len lt and if { + idx 0 gt idx exprs:len ++ lt and if { 0 idx -- exprs:sub idx exprs:len exprs:sub aadd =exprs @@ -79,6 +81,12 @@ func main { status | with args ; vardecl println 2 stop } + "precision " expr:starts-with if { + ("precision " _array:len) (expr _array:len) (expr _array:sub) _str _mega =precision + "==> epsilon = 1e-" print + precision println + 2 stop + } expr "list" eq expr "." eq or if { clear if { "." [ 27 _int ] _str ".[H.[2J.[3J" :replace print @@ -94,6 +102,8 @@ func main { status | with args ; def giac-out [ "giac" + "epsilon(1e-" precision _str concat ")" concat + "Digits:=" precision _str concat "f(x):=" f concat vardecl ":=" concat "linsolve(" concat diff --git a/polysine.txt b/polysine.txt new file mode 100644 index 0000000..110cb3f --- /dev/null +++ b/polysine.txt @@ -0,0 +1,28 @@ +f(0) = 0 +f(0.5pi) = 1 +f(pi) = 0 +f(1.5pi) = -1 +f(2pi) = 0 +f'(0.5pi) = 0 +f'(1.5pi) = 0 +f'(0) = sin'(0) +f'(pi) = sin'(pi) +f'(2pi) = sin'(2pi) +f''(0) = sin''(0) +f''(0.5pi) = sin''(0.5pi) +f''(pi) = sin''(pi) +f''(1.5pi) = sin''(1.5pi) +f''(2pi) = sin''(2pi) +f'''(0) = sin'''(0) +f'''(2/3pi) = sin'''(2/3pi) +f'''(4/3pi) = sin'''(4/3pi) +f'''(2pi) = sin'''(2pi) +f(0.5) = sin(0.5) +f(2pi - 0.5) = sin(2pi - 0.5) +f'(0.5) = sin'(0.5) +f'(2pi - 0.5) = sin'(2pi - 0.5) +f''(2pi - 0.5) = sin''(2pi - 0.5) +f(-pi) = 0 +f(3pi) = 0 +f(4pi) = 0 +