HP Forums
Acron RPN announces v3.0 BETA - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: Acron RPN announces v3.0 BETA (/thread-8923.html)

Pages: 1 2 3


RE: Acron RPN announces v3.0 BETA - vanLudwig - 09-07-2017 11:08 PM

Okay, I rewrote the algorithm to use an adaptive form of Romberg; Gaussian quadrature wasn't conducive to my code. It is now correct for all 15 displayed digits for both x^2 and 1/x and is noticeable faster. Thanks everyone for the suggestions. When you write your own calculator, you need expertise in everything - I can't imagine what I would do without Wikipedia and Wolfram.


RE: Acron RPN announces v3.0 BETA - Paul Dale - 09-08-2017 11:09 AM

I wouldn't go as far as everything but you do need to have a breadth. It's also a lot of fun and a lot of work.

Wolfram Alpha and Wikipedia aren't the only places. The GNU Scientific Library is great and well documented. There are plenty of textbooks and reference books. After that journals and the literature.

Handbook of Mathematical Functions by Abramowitz and Stegun is almost a bible for approximations for all manner of functions. The NIST Digital Library of Mathematical Functions is similar and updated. It has better (colour) eye candy. I've got paper copies of both but that is a luxury really.


Pauli


RE: Acron RPN announces v3.0 BETA - vanLudwig - 09-11-2017 12:17 AM

I just pushed BETA 2 to Google Play. Notable changes:
  • Fixed a scaling issue when updating inactive panes of a panel or foldaway
  • Fixed lots of situations where the solver functions conflicted with each other
  • Solver methods now do some basic algebra to try to optimize their function before performing a numeric method on it. Dramatically improves performance when the function includes an expensive calculation of a constant, such as ∫sin(72°)/x
  • Rewrote integration algorithm to use adaptive Romberg algorithm
  • Tweaked derivative algorithm to improve accuracy, and added an optional h parameter for user refinement when needed

I also fixed a bug in ultimate.acronrpn where the toolbars would get weird switching back and forth between the calculus toolbar and the other scientific toolbars. The link from my 9/1 post now points to the updated file.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 09-24-2017 05:43 AM

I just pushed BETA 3 to Google Play.
  • There is now two built-in layouts, one for phones and one for tablets. The correct layout will be automatically chosen the first time you start the app.
  • BETA 3 includes a build of the free version. This also has both a phone and tablet layout built in (but does not allow custom layouts).
  • I discovered that the previous BETA builds were a mess in German. This has been corrected.
  • MathZero now adjusts its tolerance to handle functions with very tiny minimums and maximums, such as sin(x)/1.0E100
  • Fixed bug preventing editing of parameters to multi-variable MathWhere in macros
I set up a stress test that churned out random button events as fast as the calculator could handle them. This exposed several obscure crashes and hangs in BETA 2 that have now been addressed. BETA 3 successfully endured 5 hours of random button presses without a problem. At this point, I think BETA 3 will probably be the final build. If you discover any problems, please notify me ASAP.

I also saw v3.0 running on iOS for the first time yesterday. There's still some issues with getting the fonts and colors correctly from the layout, but the core functionality is in place.

Here's the tablet layout that's embedded in BETA 3. I think this will mess up BETA 2, so make sure you update before using it.
Download


RE: Acron RPN announces v3.0 BETA - vanLudwig - 10-04-2017 01:41 PM

I created a website for browsing, uploading, and downloading Acron RPN layouts.

http://www.acrongames.com/rpncalculator/layouts.php

I already posted all the layouts that are on this message thread. The website is currently pretty ugly; my focus was on getting it functional. I'll get the aesthetics in order now that it's working.

Eventually I plan on having a separate smartphone app with the same functionality, but can also automatically install layouts for you. The website is an improvement, but that whole process still feels clunky to me.


RE: Acron RPN announces v3.0 BETA - rprosperi - 10-05-2017 12:37 AM

(10-04-2017 01:41 PM)vanLudwig Wrote:  I created a website for browsing, uploading, and downloading Acron RPN layouts.

http://www.acrongames.com/rpncalculator/layouts.php

The site will not open for me (in NY).

But nice idea, and nice resource for users to share their designs all in a common place. Hopefully, someone will post an article on "how-to" build something simple, for those of us that don't think in XML.

BTW, allowing customized design by creating/editing XML files is a very cool idea. It lets other folks take on dabbling with different UI styles, freeing you to improve and expand the core functional modules. I like it.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 10-05-2017 02:44 AM

Yeah, my site provider has been down for the last few hours. Figures they'd go down just a couple hours after my announcement. I've had a pretty good history with them, so I'd expect it to be back online soon.

"Freeing myself up to focus on core functionality" was my thinking exactly - that's the area I'm passionate about. Having a clean, user-friendly UI is important to me, but I don't get the same joy from designing it. I receive frequent requests for new functionality, and up until now, I've always had to consider both whether I want to implement it, and where in the UI to put it. If these layouts catch on, I won't have to worry about the "where to put it" question anymore.

My post from 8/27 with the Casio SL-240LB layout is about as simple a layout as is possible. It isn't as convenient as a tutorial, but I would expect anyone comfortable in html to be able to slog though it, especially with the LayoutDocumentation.pdf as a reference. Unfortunately, it is hosted on the same site that's currently down.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 10-05-2017 12:54 PM

Site is back online


RE: Acron RPN announces v3.0 BETA - rprosperi - 10-05-2017 01:07 PM

(10-05-2017 12:54 PM)vanLudwig Wrote:  Site is back online

Yup, I can access it fine now. I will check out the simpler examples, but the display of the various examples is effective to show just how flexible the UI can be.

Thanks again for both Acron and this new site for people to share designs.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 10-08-2017 11:57 PM

I pushed out a fourth BETA with some minor fixes.
  • Long-pressing the backspace button was causing a crash
  • Some seven-inch tablets were being identified as phones
  • Improved error message when imported stacks/layouts are not valid xml
Lots of work done on the iOS port this weekend. We are getting very close to the official v3.0 release...


RE: Acron RPN announces v3.0 BETA - vanLudwig - 10-31-2017 08:23 PM

Version 3.0 has now been publicly released on all platforms. Thanks to everyone for the suggestions and help beta testing.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 12-08-2017 10:43 PM

Anyone found any problems or functionality gaps with v3? I'm looking for something new to entertain myself over Christmas vacation.

I've been playing with replacing my Romberg-based integral algorithm with a Newton-Cotes quadrature. I'm getting results at least as good as my old algorithm, plus some tweaks I've made seem to be working quite well for improper integral ranges such as (a, b], (a, b), [a, ∞), (-∞, ∞), etc. I tried supporting complex a, b too, but that was painfully slow and I eventually dropped it. I'm going to try supporting ∫∫ ƒ(x,y) dxdy next.

So long as I'm only changing math logic instead of UI, there's no real lag in porting to iOS, so I could probably get something out in early Q1.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 01-08-2018 12:48 AM

New functionality for integrals:

I continue to get all fifteen decimal places correct for my old test cases:
(I'm formatting \(\int_{a}^{b}f(x)dx\) as \(\int \left (f(x), x, a, b \right )\), since that's the way Acron RPN draws it.)
\[\int \left ( x^{2}, x, 0, 1 \right )=0.333333333333333 \]
\[\int \left ( \frac{1}{x}, x, 1, 10 \right )=2.30258509299405\]

It now can tolerate open intervals, but accuracy suffers (correct up to the red digits)
\[\int \left ( \frac{1}{\sqrt{x}}, x, 0, 1 \right )=1.9999{\color{Red} 869261464}\]
\[\int \left ( \frac{1}{\sqrt[3]{x}}, x, -1, 1 \right )=2.24999{\color{Red} 851776435}+1.29903{\color{Red} 724990752}i\]

Integration over complex bounds
\[\int \left ( \frac{\cos (x)}{x^{3}}, x, -1, i \right )=0.958325065720024+0.78539816339744{\color{Red} 9}i\]

Double integrals
\[\iint \left (\left (xe^{-x-2y}, x, 0, \infty \right ), y, 0, \infty \right )=0.500000{\color{Red} 133547982}\]

And double integrals where the inner bounds are a function of the outer variable
\[\iint \left (\left (\frac{e^{-y}}{y}, y, x, \infty \right ), x, 0, \infty \right )=1.00000{\color{Red} 986129641}\]

The only thing I'm not happy with is that it frequently doesn't recognize divergent integrals, and gives somewhat reasonable looking answers.
\[\int \left (\tan (x), x, 0, \frac{\pi }{2} \right )={\color{Red} 1002.00994626946}\]

I'm using an adaptive Newton-Cotes quadrature based on Simpson for closed intervals and Milne for open intervals. I spin off two new threads for each successive iteration, and prioritize them by the error for that segment, so it is constantly attacking the worst problem and refining its answer until it either gets fifteen digits of precision, or runs out of time. That means faster devices will get more accurate answers, but everyone will get an answer in a reasonable amount of time.


RE: Acron RPN announces v3.0 BETA - sa-penguin - 01-15-2018 01:40 AM

Thank you all, for inspiring my continued education. Today's subject: integral algorithms.

Riemann/Trapezoid: I set up a quick Excel spreadsheet, solving \(\int_{1}^{2}e^x dx\) 4096 steps, and I still had a error of 23.2E-9
Simpson rule was next, and 32 steps had the error down to 24.7E-9.

Now, if I can just wrap my head around Romberg's Method [as explained on Wikipedia] without my brain melting, I'll consider myself educated. For today, anyway.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 01-30-2018 03:16 AM

I pushed out a beta build of v3.0.1 with my updated integral algorithm today. I expect that to be the final build; I'll make it a full release as soon as iOS is ready.

Once you've upgraded to 3.0.1, here are some good test files if you're interested in how much precision you get on your device (delete the .txt extension). These may take up to a minute to open.


RE: Acron RPN announces v3.1.0 BETA - vanLudwig - 06-09-2018 07:55 PM

I pushed out a BETA build of v3.1.0 for Android today. The major theme of this release is allowing the creation of custom functions in your layout xml. For instance, if you think the only thing separating Acron RPN from calculator bliss is that it doesn’t have a hyperbolic secant, that shortcoming is now easily rectified.

Code:
<function ID="sech" label="sech" parameters="1">
  <MathCosh.Action/>
  <MathDivInvert.Action/>
</function>

Once the code above is added to your <values> section, the ID sech becomes a valid math action, so you can bind it to buttons just like built-in functions. So, for instance, we could make it the long-press of the cosh button.

Code:
<button label="cosh" action="MathCosh.Action" longPressAction="sech"/>

Within the app, sech will now be presented exactly as if it was a built in function.
\[\text{sech}\left ( \ln \left ( \frac{5}{3} \right ) \right )=\frac{15}{17}\]
Since the MathCosh and MathDivInvert were able to maintain a perfect answer, the sech will too. On the flip side, if you provided a parameter that caused either MathCosh or MathDivInvert to abort, the entire sech would be aborted, and the stack would be restored to the pre-sech state.

I’ve added a bunch of snippets like the one above at http://www.acrongames.com/rpncalculator/snippets.php

Most of those snippets have been incorporated into layout Ultimate 2, available here (you must upgrade to 3.1.0 BETA before installing). I’ve also updated the layout documentation, available here.

Unlike previous releases, iOS is almost on par with the Android progress. I expect to have a BETA available in a few days.


RE: Acron RPN announces v3.0 BETA - vanLudwig - 06-14-2018 12:11 AM

We came across a problem with the Undo when using that Ultimate 2 layout on all platforms, and a problem with scrolling getting stuck on iOS. We will release a new BETA build for both platforms as soon as we have those issues resolved. It appears iOS BETA is by invitation only, so if you are interested, send me a private message with your Apple ID and I'll add you to the list.

If you haven't noticed, the Ultimate 2 layout includes customer-requested functionality I'm calling "In-Place Operators". If you select a line on the stack, almost all of the non-toolbar buttons will treat that as if it were the top of the stack. For instance, if you push 1-5 to the stack and select 3:
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5


Now when you hit +, it will totally ignore the 4 and 5, and treat 3 like the top:
1 = 1
2+3 = 5
4 = 4
5 = 5


Now if you hit /:
1/(2+3) = 1/5
4 = 4
5 = 5


You need to make modifications to your layout xml for in-place operators (see the example snippet). As stated before, I added it to all the non-toolbar buttons in Ultimate 2. If you don't like that layout, here's the standard phone layout with the same behavior. You need to be using 3.1.0 BETA to install this layout.


RE: Acron RPN announces v3.0 BETA - Dieter - 06-15-2018 06:26 PM

(01-15-2018 01:40 AM)sa-penguin Wrote:  Thank you all, for inspiring my continued education. Today's subject: integral I set up a quick Excel spreadsheet, solving \(\int_{1}^{2}e^x dx\) 4096 steps, and I still had a error of 23.2E-9
Simpson rule was next, and 32 steps had the error down to 24.7E-9.

That's the plain vanilla implementation of Simpson's rule.
Here 32 intervals indeed give a result with an error of 2,47 E–8.

But if you got 32 intervals you can also use the data to calculate a Simpson approximation for 16 intervals. This has an error of 3,96 E–7.

And now for the interesting part: use both (!) Simpson approximations, i.e. both the value for 32 as well as the one for 16 intervals, and calculate (16 · S32 – S16)/15. Et voilà: the result has an error of merely 9,2 E–12 (!).

I have implemented this method in a small HP-41 program that can be found on this site.

This method also has another advantage: you can start with n=4 and 2 intervals. Calculate the combined approximation as shown above. Then continue with n=8 and 4 (where only the new f(x) have to be evaluated), and get a new, better approximation. Repeat until the desired accuracy is reached. So you can estimate the error and continue adding more nodes until the result is sufficiently accurate. Take a look at the sequence of Simpson approximations in the linked thread.

Edit:

(01-15-2018 01:40 AM)sa-penguin Wrote:  Now, if I can just wrap my head around Romberg's Method [as explained on Wikipedia] without my brain melting...

The combined Simpson approximations as described above are equivalent to the results in the third column of the Romberg matrix. ;-)

Dieter


RE: Acron RPN announces v3.0 BETA - vanLudwig - 06-17-2018 03:12 AM

You're using evenly spaced intervals, right? You get better precision from the same number of iterations if you always subdivide the segment with the highest error. That's the gist of the algorithm I implemented in Acron RPN - just keep subdividing the segment with the highest error and do Simpson's on each half. The bookkeeping on that gets to be complicated, thought - you probably wouldn't be able to implement it on an HP.


RE: Acron RPN announces v3.0 BETA - The Shadow - 06-17-2018 04:12 AM

(06-15-2018 06:26 PM)Dieter Wrote:  And now for the interesting part: use both (!) Simpson approximations, i.e. both the value for 32 as well as the one for 16 intervals, and calculate (16 · S32 – S16)/15. Et voilà: the result has an error of merely 9,2 E–12 (!).

Even though I understand why it works, it still seems like black magic.