The 20s is apparently faster than the 32sii - Printable Version +- HP Forums (https://archived.hpcalc.org/museumforum) +-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html) +--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html) +--- Thread: The 20s is apparently faster than the 32sii (/thread-161288.html) The 20s is apparently faster than the 32sii - Dave Britten - 01-02-2010 I wrote a small program for calculating prime factors of a given number, based loosely on the one found here: For kicks, I made a version for both the 32sii, and the 20s. Despite the 20s being algebraic, there was actually very little that needed to be adapted for this particular program. Both are available here: For both programs, enter a positive integer, then XEQ F. Execution pauses when a factor is found. Press R/S to find the next factor. When 0 is displayed, there are no more factors. Interestingly enough, the 20s seems to produce results noticeably faster. Using the input 869,103,111, the 32sii finds the last factor (4,561) in about 1:20 total. The 20s takes just under 1:00. Anybody have an original 32s lying around and care to see how it clocks in? I'm assuming a 21s will have the same speed as a 20s. Re: The 20s is apparently faster than the 32sii (but not the 32s) - Karl Schneider - 01-03-2010 Dave -- My HP-32S (1990 model with recessed display) takes 56 seconds to obtain all four factors. Since it lacks the "<=" and ">=" tests, a small workaround was necessary: ``` 32SII: 32S: Z24 x<=y? Z24 x>y? Z25 GTO Z Z25 GTO V Z26 RCL X Z26 GTO Z Z27 STO F V01 LBL V Z28 XEQ X V02 RCL X Z29 CLx V03 STO F Z30 RTN V04 XEQ X V05 CLx V06 RTN ``` Here are my checksums on the HP-32S, which are not the same as those on the HP-32SII for the same instructions: ```LBL F 714D 10.5 LBL Y 0116 19.5 LBL Z E93C 39.0 LBL V 721A 9.0 LBL W 63E1 15.0 LBL X 5878 15.0 ``` Between two models having the same microprocessor, why does the more-advanced one tend to run somewhat slower? For example, it has also been claimed that the HP-11C is marginally faster than the HP-15C. I speculate that the lengthier microcode of the more-advanced models causes machine-level instructions to take a bit longer to be found from op-codes. However, more-knowledgeable folks might have a better answer. Addendum: Thinking about this a bit more, I'd assume that the ROM contents include some kind of index -- an address lookup table that points to where the instructions for a given op-code reside in ROM. That would speed things up, but access is probably still a bit slowed by larger ROM contents. Another factor is overloading of operations. Consider the HP-11C versus the HP-15C: On the HP-11C, "*" only multiplies two real-valued scalars. On the HP-15C, "*" can multiply two real-valued scalars, two complex-valued scalars, two matrices, or a real scalar and a matrix. Under the microcode for "*" (hex op-code FC), conditional tests for the types of both arguments and status of flag 8 must be performed before the multiplication is done. Regarding the HP-32S and HP-32SII, the display and memory management are almost the same. The difference in functionality is mostly the HP-32SII's equations and fractions -- not nearly as substantial as the difference between the HP-11C and the HP-15C. Thus, the difference in execution time between 76-80 seconds (HP-32SII) and 56 seconds (HP-32S) is surprising to me. I had 207 bytes of other programming in the HP-32S at the time of the test, so I can't necessarily credit fast GOTO's. -- KS Edited: 4 Jan 2010, 1:12 a.m. after one or more responses were posted Re: The 20s is apparently faster than the 32sii (but not the 32s) - Dave Britten - 01-03-2010 Quote: Between two models having the same microprocessor, why does the more-advanced one tend to run somewhat slower? For example, it has also been claimed that the HP-11C is marginally faster than the HP-15C. I speculate that the lengthier microcode of the more-advanced models causes machine-level instructions to take a bit longer to be found from op-codes. However, more-knowledgeable folks might have a better answer. -- KS It's actually not a huge surprise, since the two machines - according to Wikipedia, at least - both run a 640 KHz CPU. The 32sii has a more complicated display system and memory management, plus more opcodes as you mentioned. That translates to more overhead to lug around - overhead which is evidently more expensive than managing the AOS input of the 20s. I was under the impression that the segmented-display Pioneers had a slower CPU than the dot-matrix ones, which is why I initially found the results unexpected. But given the hardware details, things seem to fall into place. And a similar algorithm on my 48GX executes in under half a minute, despite the machine "feeling" slower than the Pioneers. Must be just an illusion caused by the overhead of drawing to that huge bitmapped display! Re: The 20s is apparently faster than the 32sii (but not the 32s) - bill platt - 01-03-2010 Instead of Wiccanpedia, you can always check Craig Finseth's site: http://www.finseth.com/hpdata/hp20s.php http://www.finseth.com/hpdata/hp32sii.php Edited: 3 Jan 2010, 9:53 a.m. Re: The 20s is apparently faster than the 32sii (but not the 32s) - Dave Britten - 01-03-2010 Yeah, normally I'd check there, but it seems like his site's been acting up a bit lately. Anybody else having trouble connecting, or is it just me? Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - Martin Pinckney - 01-03-2010 I'm curious, Bill, is your reference meant to disparage Wikipedia, or just a humorous intentional misstatement? It is a serious question, since I myself am not sure what to make of Wikipedia. Re: Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - Ed Look - 01-03-2010 While I may use Wikipedia myself for a few things, I do not like to recommend it to students. It is true I have never seen any scientific or mathematical pages incorrect... though there may have been some incomplete ones... this is not true for other subjects. Until someone has the ability, or more properly, the maturity, to judge the correctly the content, one should be circumspect in recommending Wikipedia. Besides, it is an open system, allowing for frequent modification. Except maybe for the Ten Commandments and Boltzmann's original formulation of the second law of thermodynamics, nothing is set in stone... but electronic ether flux is too far toward the other extreme. I am personally careful about anything I see in Wikipedia. This extends even to scientific and technical pages. Re: Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - Dave Britten - 01-03-2010 That's kind of my sentiment as well. There's a good body of knowledge there, but it should be treated as a starting point before branching out to more reputable sources. I refer to it a lot, but I've never once used it as a source for an academic paper. I have done some minor article writing and editing, though. Re: Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - bill platt - 01-03-2010 Hi Dave, I would make the following small comment regarding Wikipedia: Quote: There's a good body of knowledge there changes to: There's a good body of information there, ...as knowledge requires understanding and human insight. Wikipedia is full of information, the veracity of which is by the definition of Wikipedia always open to question to a greater degree than is the case with reputable sources. Or to put it another way: if you need to calculate the strength of something that life depends on, do you go to Wikipedia, or Timoshenko? Edited: 3 Jan 2010, 7:46 p.m. Re: The 20s is apparently faster than the 32sii - Hiawatha Wheelwright - 01-03-2010 Dave, thanks for posting this. I don't have a 32S, but I wanted to see how my 35S would perform. Your program found all factors in 1:17 on my 32sii, and in 1:27 on my 35S. On the 32Sii, it ran in 1:16 if I started the program with R/S instead of with XEQ F. Re: Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - Les Bell - 01-03-2010 Quote: Except maybe for the Ten Commandments ... nothing is set in stone Good thing you said "maybe" there. The Ten Commandments are more commonly set in type these days, a process which is prone to human fallibility. Witness the "Wicked Bible" or "Adulterous Bible", a 1631 reprint of the King James Bible, which included the memorable injunction: Thou shalt commit adultery. Oops. (See http://en.wikipedia.org/wiki/Wicked_Bible for the full story.) Best, --- Les [http://www.lesbell.com.au] Re: Now OT: The 20s is apparently faster than the 32sii (but not the 32s) - Martin Pinckney - 01-04-2010 It would appear that this version is the one taken to heart these days. Re: The 20s is apparently faster than the 32sii - Ed Look - 01-04-2010 Yeah, it's good to get back on topic. I have both the 20S and the 32SII. Maybe I should try timing them, too, though I've never ever tried to program my 20S. But I have tried some simple addition algorithm that's supposed to lead to convergence on the 32SII, 33S, 35S, and 50g. Yeah, the 32SII is the slowest, and the 33S is surprisingly fast, though significantly slower than the 50g (why did I even bother testing against this one??). I did not make it a scientific test; I started the program and went off somewhere, checking them only intermittently, so I have no absolute numbers, but what the 50g may take about an hour will take very many hours on the smaller calculators, especially the 32SII. Re: The 20s is apparently faster than the 32sii - Bart (UK) - 01-05-2010 I don't have a 32sii, but in this thead I noted that the 20S was faster than the 35s, for that particular implementation. I quite like the 20S, it was a nice machine for it's price/size, and the 99 merged program steps is about right to briefly implement repetative or iterative formulas. There seems to be nothing like it on the market today. For programability it's either a 35s or an overkill graphics calculator. (The Sharp EL-5250 is the only other non-graphics programmable that I know of, but is not available in much of Europe). Re: The 20s is apparently faster than the 32sii - Thomas Radtke - 01-05-2010 Casio has some programmables of which the fx-4500pa is an evergreen for good reasons. Not a bad calculator if you don't mind the entry system and hard to read keyboard legends. Programmable non-graphic scientifics (Was: Re: The 20s is apparently faster than the 32sii) - Bart (UK) - 01-05-2010 Thanks, doing some more research I found Casio have more programmable models. the FX-50F+ which I've found on UK online stores and the FX-5800P which is not available in the UK, but in Germany and Switzerland for about the same price as a 35s (on the plus side it does seem to have connectivity options). Edited: 5 Jan 2010, 10:04 a.m. Re: Programmable non-graphic scientifics (Was: Re: The 20s is apparently faster than the 32sii) - Marcus von Cube, Germany - 01-05-2010 I have a fx-5800P in front of me. The connectivity is only between identical machines. The cable is a standard Casio connectivity cable but that does not mean that you can mix and match devices. Still better than no connectivity at all. Re: Programmable non-graphic scientifics (Was: Re: The 20s is apparently faster than the 32sii) - Bart (UK) - 01-05-2010 Oh, I thought it might connect to a PC using a special cable like the 9850g. Too bad. How about 4 seconds? - Gene Wright - 01-06-2010 Not bad huh? Was not using a 50g, no C programming. Sound interesting? Re: How about 4 seconds? - David Hayden - 01-07-2010 Okay, I'll bite. How did you do it, Gene? Dave Re: How about 4 seconds? - Gene Wright - 01-08-2010 The truth is out there. Either no one is looking or no one has found it yet. Soon as someone does, I'll talk. The old PPC Journal had a 10 digit prime number "worst case" test they used. The number was 9,999,999,967, the largest 10 digit prime, I believe. What did this in 4 seconds determines this to be prime in less than 50 seconds. Edited: 8 Jan 2010, 11:19 a.m. Re: How about 4 seconds? - Jeff O. - 01-08-2010 Perhaps the truth is here? Jeff, no one follows links any longer - Gene Wright - 01-09-2010 :-( but then... :-) HP 30b - Walter B - 01-09-2010 Ok, that's good news, though a scientific calc with similar features would have been even better. But one could bring forward the argument that after all financial people caused the world economic crisis, not scientists, thus financial people need a proper calc more urgently. I want to repeat a question I asked here weeks earlier, but didn't get an answer then: Does the 30b feature the same interface the 20b does, allowing some customization? Since you mentioned the improved keyboard in the linked articles, one could think of mating a 30b keyboard with 20b electronics else. (Edited to include the link.) Edited: 9 Jan 2010, 4:28 p.m. after one or more responses were posted Re: HP 30b - Gene Wright - 01-09-2010 Yes. Same interface. No need to mate a 30b keyboard with 20b electronics. Just use a 30b. Prime factor routine factors 9,999,999,967 as prime in a bit over 50 seconds. Try that with the 32s, 32s2, or even the 35s. Not bad for a business calculator. P.S. I assume HP made a business calculator because more people buy them. So, let's say 12 man months of effort to sell tons of calculators or for something much much smaller. Easy choice, but I'm guessing. Re: HP 30b - Jeff O. - 01-10-2010 I guess I can admit now that my 20b repurposing proposal was really intended as a 30b repurposing proposal. I had considered concepts for the 20b, but with its relatively poor keyboard, it did not seem worth the trouble. With its metal-dome keyboard, the 30b would be a worthwhile candidate, I think. Re: HP 30b - 9,999,999,967 returned prime in 40 seconds now... - Gene Wright - 01-10-2010 How long does the 20s, 35s take on that? I'm surprised so far such a small amount of interest. ;-) Business machine, yes. RPN programmable with many scientific functions? yes. Re: HP 30b - Walter B - 01-10-2010 For sure the 30b will approach good ol' HP quality better than the 20b does. If we extrapolate this series of 2 (a bit keen ;) I admit), then we'd get a model with this keyboard and a better, i.e. more versatile display next. Already the 30b, however, shall be sufficient to demonstrate successfully where repurposing may lead us to. Ceterum censeo: HP, launch a 43S (you still have the chance to be the first). Walter Re: HP 30b - 9,999,999,967 returned prime in 40 seconds now... - Norman Dziedzic - 01-10-2010 I'm at 33 Minutes and counting on a 35s Re: HP 35s t<51 minutes - Norman Dziedzic - 01-10-2010 I had to step away, it was done when I got back. Time is something less than 51 minutes on the 35s Re: HP 35s t<51 minutes - Gene Wright - 01-10-2010 So, the new model is maybe 70-80 times faster. Interesting. ;-) Re: How about 4 seconds? - David Hayden - 01-11-2010 Does anyone know (and can they say) anything about the reason for the 30b's speed improvements? Faster processor? Native (i.e., not Saturn) code? I'm hoping, and assuming, that HP is porting their Saturn assembly code to ARM so they can get rid of the Saturnator emulator. That would greatly speed up the calculators. A 32-bit address space would simplify them greatly and allow for much more memory too. Dave Re: How about 4 seconds? - Tim Wessman - 01-11-2010 Yes people could talk about the 30b, it has been announced. It is running native code also. No emulation. I'm actually pretty sure the 4 second time would be cut in half if it wasn't being dropped down from 30MHz to 15MHz. Somewhere in there is a trigger to drop speed to save power when a program is taking a long time. I haven't checked to see what that threshold is. The math library in the 20/30b isn't so much "ported" (which I will interpret here as rewriting it from one system to another) but rather was remade in platform independent C using the original math library as a base. You wouldn't want to attempt to recreate all the saturn code in something like a 50g in C or ARM either. There are a lot of things that are very much keyed to the old processor, and frankly, there are better ways to do things in a lot of ways. Those systems were generally limited by technology and memory in a way modern systems aren't. It is much more important to have platform independence and maintainability than saving a few nibbles here or there. TW Ok, 30b review link... - Gene Wright - 01-11-2010 This review lays out the differences and improvements to the 30b compared to the 20b. There will (eventually) be 40 learning modules online, 6 of which are dedicated to programming. So, read the review and ask questions. 30b prime factor program... - Gene Wright - 01-11-2010 Here is the program that now determines 9,999,999,967 to be prime in about 40 seconds. Must be run in RPN mode, of course. Byte count: 141 bytes (1/2 of total available) Checksum: 232 Usage: Enter program catalog by pressing shift Prgm. With this program selected / displayed, key number to factor and press = =. (Yes, that's twice). Displays running while checking factors. If number is prime, displays "Prime" and shows original number. If a factor is found, displays the factor. Press R/S to continue displaying factors. Zero is displayed when all factors have been found. Sadly, this is faster than the prime factor program that will be in the learning modules. Of course, it is much newer than that one. FYI...This is not my code. ```goto 06 lbl 02 rcl + 3 sto 3 rcl 1 swap / math up = // performs a FP instruction gf 03 // goto if false i.e. 0 rtn lbl 00 4 call02 // subroutine call. 4 levels available. 2 call02 4 call02 2 call02 4 call02 6 call02 2 call02 6 call02 rcl 1 LN gt 01 // goto if true i.e. non-zero on // if non zero, this clears to zero stop // This is equivalent to KILL on the RPL machines. lbl 01 rcl 2 rcl 3 ?>= // note: this compares rcl 2 >= rcl 3. RPL conditional order gt 00 rcl 1 sto 3 call03 on stop // This is not R/S but KILL lbl 03 rcl 1 rcl / 3 sto 1 sqrt math up up = // performs an IP instruction sto 2 rcl 4 rcl 3 ?=/= // rcl 4 not equal to rcl 3 ? gt 05 // if non-zero i.e. true go to 05. msg Prime // displays word Prime on level 2 of display. lbl 05 r/s on goto 02 lbl 06 sto 1 sto 4 sqrt math up up = // performs IP instruction sto 2 0 sto 3 2 call02 1 call02 2 call02 2 call02 rcl 1 LN gt 00 // if non-zero, go back. If LN is = zero, value was 1 on stop ``` Edited: 11 Jan 2010, 1:48 p.m. after one or more responses were posted Re: 30b prime factor program... - Katie Wasserman - 01-11-2010 I didn't write this either, but will just mention a few things that might make it more understandable to those of us who haven't programmed on a 30b yet. - There are no line numbers in the editor but there is a checksum and byte count (Gene you should include that.) - This is a keystroke macro language not a typical RPN language so to get the IP fucntion on the Math menu, for example, you'd press: Math, Up, Up, =. The = essentially means to execute that function and put the result in the X register. - Comparison functions like, ?>=, push a 1 if true on to the stack or a 0 if false. Almost always these are followed by a GT or GF function, Go-if-True or Go-if-False. These functions pop the stack and branch if the value is non-zero or zero, respectively. - Label searches start at the beginning of memory. If you have a lot of code prior to the branch target this will substantially increase execution time for programs that do a lot of looping. To minimize this the code starting at Lbl 02, in this example, has been put at the beginning of memory and that's why you see the funky goto 06 at the top of the code, it branches to the start of the main code. - you see "on" in a couple of places in the code, this is a CLx. The shared button reads ON/CE. -Katie Re: 30b prime factor program... - Tim Wessman - 01-11-2010 There is a line/step counter in the editor. It is in the exponential area. TW Re: 30b prime factor program... - Katie Wasserman - 01-11-2010 There is indeed but since it's not on the left margin, program listings typed in by users typically do not show the line number. -Katie Edited: 11 Jan 2010, 2:02 p.m. Re: 30b prime factor program... - Don Shepherd - 01-11-2010 I didn't write this code either! Actually, that honor goes to Dave Britten at the beginning of this thread, who adapted his code from the original code on the HP-67 math pak. From Dave's code, Tim Wessman wrote this code for the 30b, which I then modified (at Katie's suggestion) to move the most used subroutines to the top of the code so it would execute faster on the 30b. Whew. Here is a hand-written annotation of the algorithm, before I rearranged the order of subroutines to make it run faster. The version that Gene listed above in this thread finds the primality of 9,999,999,967 in 40 seconds on the 30b. The annotated one in my link takes about 54 seconds. I also wrote a version that eliminates all multiples of 7 from the pool of potential factors, but that did not reduce the execution time on the 30b, unfortunately, because most multiples of 7 are also multiples of either 2 or 3 or 5, which are already excluded. Edited: 11 Jan 2010, 2:55 p.m. Re: 30b prime factor program... - Tim Wessman - 01-11-2010 Ah. Got it. Makes more sense now. :-) TW Re: Ok, 30b review link... - Walter B - 01-14-2010 Gene, you wrote: Quote: So, read the review and ask questions. Well, I take this invitation d;-). I found in your review: Quote: The mode menu settings can now be stored and recalled by pressing store or recall and then . This key sequence brings up a 12 digit number with each position corresponding to a mode menu item and its setting. ... This is described and a table of these values shown in the Programming Reference learning module. Where is this information about mode storing and recalling available already? I'd be very interested d:-) TIA for your help. Re: Ok, 30b review link... - Don Shepherd - 01-14-2010 Walter, here is the lowdown on the mode settings. When you RCL Mode, you get a 12-digit number. Lets call it: abc,def,ghi,jkl. a = 1 for Standard TVM mode, 2 for Canadian TVM mode b = 1 for Semi-annual mode, 2 for Annual mode c = 1 for Actual day count mode, 2 for 360 day count mode d = 1 for thousands separators not visible, 2 are visible e = 1 for decimal separator ., 2 for decimal separator , f = 1 for mm.ddyyyy mode, 2 for dd.mmyyyy mode g = regression type, 1-7 for: ax+b, a*ln(x)+b, b*e^(ax), b*x^a, b*a^x, a/x+b, and ax^2+bx+c h = 1 for 2 variable stats, 2 for 1 variable stats, 3 for 1 variable frequency i = 1 for radian mode, 2 for degree mode j = 1 for Chain mode, 2 for Algebraic mode, 3 for RPN kl = Fix setting, 00-11, 13=Fix -1 Re: Ok, 30b review link... - Gene Wright - 01-14-2010 Good job, Don! :-) Walter, ask anything you like about the 30b. More...more! Note on the MODE stuff. As the review says (or tries to say), you don't have to key the entire 12 digits to change a setting and a value that is outside the valid range is ignored. So, 302 shift sto shift mode will change to fix 2 and RPN mode. 114 shift sto shift mode would change to chain mode and leave the display setting unchanged since 14 is an invalid value. And, yes, I too want an unshifted store key. Re: Ok, 30b review link... - Thomas Radtke - 01-14-2010 Quote: Good job, Don! :-) Walter, ask anything you like about the 30b. More...more! May I ask also? :^) - Is the bottom half of the case beveled the way the 20b is? - How flexible is this Canadian Mortgage mode? Say, can I specify monthly payments with annual compounding? Does it mean the first payment gets full interest, the last one 1/12 of the interest when in Begin mode? 30b Canadian Mortgages... - Gene Wright - 01-14-2010 The external case / shape is the same. Canadian mortgage mode allows you to specify a value for P/YR and a value for C/YR. These can be set to a combination of any valid individual values. I don't know exactly how amortizing a Canadian mortgage works, but the computations work and match what I expect. From the PPC ROM manual description of FI routine: Canadian Mortgage: Find the monthly end-of-period payment necessary to fully amortize a 25 year, \$85,000 loan at 11% compounded semiannually. Steps on the 30b: Shift MODE up. INPUT. .... Changes to TVM Canada Shift P/YR ... displays P/YR of 12 Down...displays C/YR default of 12. 2 INPUT...changes C/YR to 2. ON/CE 300 N 11 I/YR 85000 PV 0 FV PMT Displays -818.15. Full precision is -818.149794116 Agrees with PPC ROM. ;-) And, yes, I really do check HP financial calculations against the 12c first :-) and then the PPC ROM FI routine. Too much trouble pulling out my HP 92. Edited: 14 Jan 2010, 12:10 p.m. Re: Ok, 30b review link... - cyrille de BrĂ©bisson - 01-14-2010 hello, Internally, all calcualtions are done using a per period interest rate. in normal mode, the per period interest rate is calculated by dividing the rate by the number of periods. in canadian mode, the periodic interest rate is calculated using the following formula: I=(i/c/100+1)^(c/p)-1 (actually, to be more precise: exp-1((c/p)*lnp1(i/c/100)) but who cares...) therefore, you can have any valid combinaison of ppyr and cpyr... after that, it's TVM as usuall... regards, cyrille Re: Ok, 30b review link... - Thomas Radtke - 01-15-2010 Thanks Gene and Cyrille for enlighten me about Canadian Mortgage. I got that conpect apparently wrong :-/. Fulfilling your request, Gene d:-) - Walter B - 01-15-2010 You wrote: Quote: There will (eventually) be 40 learning modules online, 6 of which are dedicated to programming. I ask: When? Re: Fulfilling your request... - Gene Wright - 01-15-2010 I don't know, but of course, the 30b isn't for sale yet, so ... Edited: 15 Jan 2010, 9:52 a.m.