We all know the limitations of the basic calculator app that ships with Android smartphones. If you try to perform a mathematical operation on a relatively larger number, then it just gives up and shows “Error” in the result box. Even the third-party apps designed by some of the OEM manufacturers like ASUS or Xiaomi suffer from the same ailment. These simple calculator apps are not designed to work with large numbers. If you want to work with large numbers, then you can try your hands on the “Ivy Big Number Calculator” app in your Android device. As the name suggests, this app can handle large number calculations to a certain degree.
Even though the Ivy calculator app can handle large numbers easily, it is not your typical calculator app with buttons for numbers and operators. It is more of an interpreter app that interprets each line as you type it. If you have ever worked with Python Interpreter, then you would be able to quickly jump on the wagon and start using the Ivy calculator. Actually this app is designed using the GO language and uses some of the elements from the APL programming language (however Ivy does not fully implement it).
You can start using Ivy calculator for basic mathematics operations like addition, subtraction, multiplication, devision, raising numbers to certain power, square roots and so on. Ivy also supports logarithmic and trigonometric functions, multi-dimensional arrays, logical and binary functions etc. You can even define your own functions, but since it does not support loops (for, while, goto etc.), you won’t be able to define any interesting functions that depend on looping like calculating the factorial or the Fibonacci series.
The Ivy Big Number Calculator app gives a little hope towards large number calculations on your smartphone. It is still under development and may improve and include more features as the time goes by.
You can get the Ivy Big Number Calculator app from https://play.google.com/store/apps/details?id=org.golang.ivy.
Great article.
I want to share a way to calculate factorial without loops:
> def factorial x = */iota x
> factorial 69
171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
> factorial 77
145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
> factorial 100
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
> factorial 500
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
That is very clever 🙂