Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

extended bc

9 views
Skip to first unread message

antonio.ma...@gmail.com

unread,
Nov 25, 2019, 7:56:41 AM11/25/19
to
hi, this is my own extended version of linux shell command "bc"
may be you can find it useful... and may be you can find on it some errors... let me know. bye

---
$ cat b
#!/bin/bash

{
echo -n "define abs(x){return sqrt(x^2)} "
echo -n "define cbrt(a){if(a==0)return 0;return e(l(abs(a))/3)*a/abs(a)} "
echo -n "define qqrt(a){if(a==0)return 0;return e(l(a)/4)} "
echo -n "define p(a,b){if(a==0){if(b==0)return 1;return 0};return e(l(a)*b)} "
echo -n "define t(a){return s(a)/c(a)} "
echo -n "define ct(a){return c(a)/s(a)} "
echo -n "define as(s){if(s==1)return a(1)*2;if(s==-1)return -a(1)*2;return a(s/sqrt(1-s^2))} "
echo -n "define ac(c){if(c==1)return 0;if(c==-1)return a(1)*4;if(c==0)return a(1)*2;b_a=a(sqrt(1-c^2)/c);if(b_a>=0)return b_a;return a(1)*4+b_a} "
echo -n "define act(ct){if(ct==0)return a(1)*2;b_a=a(1/ct);if(b_a>0)return b_a;return a(1)*4+b_a} "
echo -n "define sec(a){return 1/c(a)} "
echo -n "define cosec(a){return 1/s(a)} "
echo -n "define asec(c){return ac(1/c)} "
echo -n "define acosec(s){return as(1/s)} "
echo -n "define vers(a){return 1-c(a)} "
echo -n "define covers(a){return 1-s(a)} "
echo -n "define avers(c){return ac(1-c)} "
echo -n "define acovers(s){return as(1-s)} "
echo -n "define sh(x){return (e(x)-e(-x))/2} "
echo -n "define ch(x){return (e(x)+e(-x))/2} "
echo -n "define th(x){return (e(x)-e(-x))/(e(x)+e(-x))} "
echo -n "define cth(x){return (e(x)+e(-x))/(e(x)-e(-x))} "
echo -n "define sech(x){return 2/(e(x)+e(-x))} "
echo -n "define cosech(x){return 2/(e(x)-e(-x))} "
echo -n "define ash(s){return l(s+sqrt(s^2+1))} "
echo -n "define ach(c){return l(c+sqrt(c^2-1))} "
echo -n "define ath(t){return l((1+t)/(1-t))/2} "
echo -n "define acth(c){return l((c+1)/(c-1))/2} "
echo -n "define asech(c){return l((1+sqrt(1-c^2))/c)} "
echo -n "define acosech(s){if(s<0)return l((1-sqrt(1+s^2))/s) else return l((1+sqrt(1+s^2))/s)} "
echo -n "define int(x){if(x==0)return 0;b_exscale=scale;scale=0;b_itg=x*x/x;scale=b_exscale;return b_itg} "
echo -n "define rnd(){if(b_firstime==0){b_seed=$RANDOM;b_firstime=1;};b_seed=s(b_seed)*10;return s(b_seed)} "
echo -n "define mod(a,b){b_a=sqrt(a^2);b_b=sqrt(b^2);while(b_a>=b_b)b_a=b_a-b_b;return b_a*a/sqrt(a^2)} "
echo -n "define fact(f){if(f<0)return 0;b_f=int(f);if(b_f==0)return 1;b_r=b_f;b_f=b_f-1;while(b_f>1){b_r*=b_f;b_f=b_f-1};return b_r} "
echo -n "define r(d){return d/45*a(1)} "
echo -n "define d(r){return r/a(1)*45} "
cat
} | BC_LINE_LENGTH=0 bc -l

0 new messages