bc (basic calculator) and libraries of functions

02092018, 03:10 PM
(This post was last modified: 02092018 03:11 PM by pier4r.)
Post: #1




bc (basic calculator) and libraries of functions
Follow up of: http://www.hpmuseum.org/forum/thread101...l#pid90844
In linux, bc is a neat program with arbitrary precision. https://en.wikipedia.org/wiki/Bc_(programming_language) The point is that although it seems quite powerful for a possible math programming environment, to my knowledge there is no extensive library of math functions. https://www.gnu.org/software/bc/manual/h...no/bc.html Functions: Quote: If bc is invoked with the l option, a math library is preloaded and the default scale is set to 20. The math functions will calculate their results to the scale set at the time of their call. The math library defines the following functions: To my little knowledge the best that I found is the following: http://phodd.net/gnubc/ and then http://phodd.net/gnubc/bcfaq.html it is a nice project in itself to try to make a library module for bc (that I think it will be worth it. Another fun todo). Anyway, do you know any better collection (or libraries or repositories) of functions for bc? For example a file with many functions inside? Wikis are great, Contribute :) 

02092018, 03:21 PM
Post: #2




RE: bc (basic calculator) and libraries of functions
Hello!
I vaguely remember "bc" from my unix days (ca. 19892000). BTW: Not only Linux has one on board, but every Macintosh running OS X as well. In one of your linked articles I instantly found this droll piece of explanation: "bc was preceded by dc, an earlier arbitraryprecision calculator written by the same authors. dc could do arbitraryprecision calculations, but its reverse Polish notation (RPN) syntax was inconvenient for users". Saluti Max 

02102018, 03:01 AM
Post: #3




RE: bc (basic calculator) and libraries of functions
(02092018 03:10 PM)pier4r Wrote: Follow up of: http://www.hpmuseum.org/forum/thread101...l#pid90844 bc is also available for Windows: http://gnuwin32.sourceforge.net/packages/bc.htm Does anyone know if there is a way to save and load files from the interactive mode? Right now, I'm pasting text into the bc window. Tom L DM42 SN: 00025 (Beta) SN: 00221 (Production) 

02102018, 09:39 AM
(This post was last modified: 02102018 09:42 AM by Massimo Gnerucci.)
Post: #4




RE: bc (basic calculator) and libraries of functions
(02102018 03:01 AM)toml_12953 Wrote:(02092018 03:10 PM)pier4r Wrote: Follow up of: http://www.hpmuseum.org/forum/thread101...l#pid90844 Of course it is; yesterday I used the 1.07 version (bc + dc) available here. (02102018 03:01 AM)toml_12953 Wrote: Does anyone know if there is a way to save and load files from the interactive mode? Right now, I'm pasting text into the bc window. I could not find a way from the interactive mode either. Greetings, Massimo +×÷ ↔ left is right and right is wrong 

02102018, 10:15 AM
Post: #5




RE: bc (basic calculator) and libraries of functions
(02102018 09:39 AM)Massimo Gnerucci Wrote:(02102018 03:01 AM)toml_12953 Wrote: bc is also available for Windows: Thanks for the tip on the newer version! The site I mentioned has great docs for 1.06 included in the file so it's worth it to me to use those with the newer bc from your site. 1.06 doesn't seem too different from 1.07.1 so most of the information applies. I do notice the transcendental functions s(x), c(x), a(x), etc. are much faster in 1.07. Tom L DM42 SN: 00025 (Beta) SN: 00221 (Production) 

06182018, 10:00 AM
Post: #6




RE: bc (basic calculator) and libraries of functions
I like to benchmark any new Linux server I come across with:
> time echo "scale=5000; 4*a(1)"  bc l q 3.141592653589793238462643383279502884197169399375105820974944592307\ 81640628620899862803482534211706798214808651328230664709384460955058\ 22317253594081284811174502841027019385211055596446229489549303819644\ 28810975665933446128475648233786783165271201909145648566923460348610\ 45432664821339360726024914127372458700660631558817488152092096282925\ 40917153643678925903600113305305488204665213841469519415116094330572\ 70365759591953092186117381932611793105118548074462379962749567351885\ 75272489122793818301194912983367336244065664308602139494639522473719\ 07021798609437027705392171762931767523846748184676694051320005681271\ 45263560827785771342757789609173637178721468440901224953430146549585\ 37105079227968925892354201995611212902196086403441815981362977477130\ 99605187072113499999983729780499510597317328160963185950244594553469\ 08302642522308253344685035261931188171010003137838752886587533208381\ 42061717766914730359825349042875546873115956286388235378759375195778\ 18577805321712268066130019278766111959092164201989380952572010654858\ 63278865936153381827968230301952035301852968995773622599413891249721\ 77528347913151557485724245415069595082953311686172785588907509838175\ 46374649393192550604009277016711390098488240128583616035637076601047\ 10181942955596198946767837449448255379774726847104047534646208046684\ 25906949129331367702898915210475216205696602405803815019351125338243\ 00355876402474964732639141992726042699227967823547816360093417216412\ 19924586315030286182974555706749838505494588586926995690927210797509\ 30295532116534498720275596023648066549911988183479775356636980742654\ 25278625518184175746728909777727938000816470600161452491921732172147\ 72350141441973568548161361157352552133475741849468438523323907394143\ 33454776241686251898356948556209921922218427255025425688767179049460\ 16534668049886272327917860857843838279679766814541009538837863609506\ 80064225125205117392984896084128488626945604241965285022210661186306\ 74427862203919494504712371378696095636437191728746776465757396241389\ 08658326459958133904780275900994657640789512694683983525957098258226\ 20522489407726719478268482601476990902640136394437455305068203496252\ 45174939965143142980919065925093722169646151570985838741059788595977\ 29754989301617539284681382686838689427741559918559252459539594310499\ 72524680845987273644695848653836736222626099124608051243884390451244\ 13654976278079771569143599770012961608944169486855584840635342207222\ 58284886481584560285060168427394522674676788952521385225499546667278\ 23986456596116354886230577456498035593634568174324112515076069479451\ 09659609402522887971089314566913686722874894056010150330861792868092\ 08747609178249385890097149096759852613655497818931297848216829989487\ 22658804857564014270477555132379641451523746234364542858444795265867\ 82105114135473573952311342716610213596953623144295248493718711014576\ 54035902799344037420073105785390621983874478084784896833214457138687\ 51943506430218453191048481005370614680674919278191197939952061419663\ 42875444064374512371819217999839101591956181467514269123974894090718\ 64942319615679452080951465502252316038819301420937621378559566389377\ 87083039069792077346722182562599661501421503068038447734549202605414\ 66592520149744285073251866600213243408819071048633173464965145390579\ 62685610055081066587969981635747363840525714591028970641401109712062\ 80439039759515677157700420337869936007230558763176359421873125147120\ 53292819182618612586732157919841484882916447060957527069572209175671\ 16722910981690915280173506712748583222871835209353965725121083579151\ 36988209144421006751033467110314126711136990865851639831501970165151\ 16851714376576183515565088490998985998238734552833163550764791853589\ 32261854896321329330898570642046752590709154814165498594616371802709\ 81994309924488957571282890592323326097299712084433573265489382391193\ 25974636673058360414281388303203824903758985243744170291327656180937\ 73444030707469211201913020330380197621101100449293215160842444859637\ 66983895228684783123552658213144957685726243344189303968642624341077\ 32269780280731891544110104468232527162010526522721116603966655730925\ 47110557853763466820653109896526918620564769312570586356620185581007\ 29360659876486117910453348850346113657686753249441668039626579787718\ 55608455296541266540853061434443185867697514566140680070023787765913\ 44017127494704205622305389945613140711270004078547332699390814546646\ 45880797270826683063432858785698305235808933065757406795457163775254\ 20211495576158140025012622859413021647155097925923099079654737612551\ 76567513575178296664547791745011299614890304639947132962107340437518\ 95735961458901938971311179042978285647503203198691514028708085990480\ 10941214722131794764777262241425485454033215718530614228813758504306\ 33217518297986622371721591607716692547487389866549494501146540628433\ 66393790039769265672146385306736096571209180763832716641627488880078\ 69256029022847210403172118608204190004229661711963779213375751149595\ 01566049631862947265473642523081770367515906735023507283540567040386\ 74351362222477158915049530984448933309634087807693259939780541934144\ 73774418426312986080998886874132604720 real 1m58.887s user 1m58.782s sys 0m0.016s That's when running on a CubieTruck 3 with Debian Stretch. 

06182018, 02:15 PM
(This post was last modified: 06192018 08:44 AM by Luigi Vampa.)
Post: #7




RE: bc (basic calculator) and libraries of functions
I do enjoy programming in BASH, when you need a glue language.
I found this link (in Spanish) useful. EDIT on 20180620: URL changed to the original web page of the author. Saludos Saluti Cordialement Cumprimentos MfG BR + + + + + Luigi Vampa + Free42 LeaGooM9 '<3' I + + + 

07062018, 12:08 AM
Post: #8




RE: bc (basic calculator) and libraries of functions
bc number theory programs:
http://www.numbertheory.org/gnubc/gnubc.html Keith own arbitrary precision calculator: http://www.numbertheory.org/calc/krm_calc.html 

07112018, 11:37 AM
Post: #9




RE: bc (basic calculator) and libraries of functions
Thanks for sharing!
Wikis are great, Contribute :) 

07212018, 08:40 PM
(This post was last modified: 07212018 08:43 PM by pier4r.)
Post: #10




RE: bc (basic calculator) and libraries of functions
I was contemplating one aspect that stops me to use this or that wellknown programming language. The fact that my homelab has all the different types of OSes and therefore it is a bit difficult to have the programming language of choice on the minimum needed versions over all systems.
The languages that is the most stable of all, being still relatively simple to use, is gawk. Its lack of math (many) functions, though, pushed me to think multiple times to combine it with bc (in the two way IO process, that is pretty handy https://www.gnu.org/software/gawk/manual...002fO.html ). Bc does the function computation, the rest is done by awk. Is not optimal, but is handy. Well today I noticed that since 4.1 awk just extended "for fun" the math abilities to arbitrary precision. https://www.gnu.org/software/gawk/manual...Arithmetic I am pretty sure that someone shared already an extended math library on the now defuct awk.info site (n1), anyway porting the functions made for bc to gawk itself may make them even more handy for quick prototyping/scripting. It could be handy even for others. n1: "the internet does not forget", well no. It forgets a lot. Another nice site to disappear in some days is: https://chessprogramming.wikispaces.com/ , although they are trying to move it to their own domain. The point being, without maintainer, things are lost. Wikis are great, Contribute :) 

07212018, 11:30 PM
Post: #11




RE: bc (basic calculator) and libraries of functions
For trying things out, unlike bc, gawk lack a REPL
I made a simple REPL for gawk, for trying things out. Below is some output from my igawk.py Code:


07222018, 10:22 AM
Post: #12




RE: bc (basic calculator) and libraries of functions
For those that are puzzled about REPL (like me): https://en.wikipedia.org/wiki/Read%E2%80...print_loop
In my case when I need interactivity I use bc (or something with continuous memory like the nq41 or the like). Normally if gawk is there, bc is there too. Wikis are great, Contribute :) 

07222018, 01:34 PM
Post: #13




RE: bc (basic calculator) and libraries of functions
Those familiar with RPL might use the GNU Emacs Calculator.
Within emacs you can start it with: Mx calc HTH Thomas 

08272018, 11:57 AM
Post: #14




RE: bc (basic calculator) and libraries of functions
Today while testing some powers I realized that the powr operator is a bit strict.
"The result of the expression is the value of the first raised to the second. The second expression must be an integer." Bummer. Exp(ln(x)) to the rescue Wikis are great, Contribute :) 

08272018, 02:28 PM
Post: #15




RE: bc (basic calculator) and libraries of functions
more surprises with bc: https://www.johndcook.com/blog/2010/07/1...hlibrary/
Not only is the exponent must be integer, unary minus had precedence above ^  3 ^ 2 => 9     3 ^ 2 => 9 On some old bc version x=y and x= y had different meanings ... weird see page 6 of http://www.unixprogram.com/bc.pdf 

08272018, 07:18 PM
(This post was last modified: 09022018 08:29 AM by pier4r.)
Post: #16




RE: bc (basic calculator) and libraries of functions
Nice article. Bc l on Twitter is a nice idea too. To emulate!
Wikis are great, Contribute :) 

« Next Oldest  Next Newest »

User(s) browsing this thread: 1 Guest(s)