The following warnings occurred:
Warning [2] Undefined array key 41778 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41781 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41782 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41783 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41787 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41799 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41811 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41812 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41826 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41783 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41812 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 41826 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





hp35 is magic



#10

the recent mention of csim (thanks jonathan) has got me reading the hp35 assembler again...

ive been trying to experiment with cordic calculation methods (as used in the 35). although theres several papers out there, there's not a lot of code (i couldnt find any). so i decided to try to write some.

im shifting and adding in binary, so i need 53 bits (for a double) and 53 constants (one for each mantissa bit). now, i assume the 35 worked in decimal right through, so it would need 10 ten digit constants but use each more than once (binary uses each constant for add or subtract just once).

worse, it would need to implement the hyperbolic iteration (for logs and square root), which means it needs the atanh constants as well as the atan ones. thats 20 constants.

i dont see those constants in the assember. where are they??

i read the original paper by j.s.walther of hp, "unified algorithms for elementary functions". here he describes some trickery for only storing half the constants. but i still dont see even 10 in the assember (and i know it works!). there are about 5 or so patches of "load constant X".

theres more. in my version ive separated the logic for linear, circular and hyperbolic iteration. i know you can combine them using more inner-loop tests, but, it gets quite cumbersome, and you have to do the hyperbolic 3k+1 malarkey otherwise your answers are wrong.

which brings me to the final question. why didnt early models have hyperbolic functions on keyboard, since internally hyp was used for log, exp and square root. i can understand the space restriction at first, but what about hp80 and hp55. perhaps they didnt think anyone wanted them. or was it because it didnt really do the 3k+1 correction internally but somehow log and sqrt could be extracted accurately.

or perhaps its voodoo magic ;_)

my code:
http://www.voidware.com/cordic.htm


#11

Can you describe this method (or point to some link) in "algorithmic" form (not C or other language)?

I'm planning to build a calculator with microcontrollers, initially as a emulator for HP ROMS and in the future a calculator of my own as a "compilation" of various algorithms and functions of my interest (as merging the functions of the HP-15C and HP-16C).
I'll try to get the 15C ROM, but it isn't a easy task. In another way, I can use the HP-42S's ROM and modify the assembler to fit in my emulator (Saturn CPU) and 7-segment display (to fit in a HP-32E case with its display/keyboard).

Best regards,

Nelson

P.S. your scicalc for Palm OS is a beauty! I can't imagine such a precision on a real pocket calculator... Or can I? Building one from scratch is a lot of work, but as a hobby (read "open source" and "free") project, who knows...


#12

google search for "crdcsrvy". i found that the most useful.
j.s.walthers paper is here, http://www.voidware.com/uafef.pdf

btw, im currently working on scicalc v3. originally, i thought v3 would extent v2. but v3 is completely new. it will be able to handle symbolic expressions for solve, integrate, factorize and so on....

i reached this conclusion by reading the 15c advanced functions handbook. there are problems that no numerical method can touch (eg integrate sin(1/x) from 1 to inf). it has a value. what is it? the trick (as in the book) is to first transform it into another expression that can be handled numerically.


#13

Thanks, I'll read that paper. I'm not a mathematician but I'm really interested in numerical algorithms (as I use many of them in my work as a Delphi programmer, now working on forest growing/planning software).

How is the compiler that you use for Palm platform? I'm really interested in porting the EMU42 to the PalmOS, but I'm not a C programmer, barely read it... If it was in assembler, no problem at all!
(I think I'll put this task on my "hobby projects" list ;-)

Best regards!

Nelson

#14

Hi...

why didnt early models have hyperbolic functions on keyboard, since internally hyp was used for log, exp and square root. i can understand the space restriction at first ... but somehow log and sqrt could be extracted accurately

Well I'm guessing that they simply ran out of ROM space so hyperbolics were first to go. The HP35 did all its stuff in, what, 768 instructions? And that ROM was chock-full. As programmability was added (HP25, etc.) the extra ROM space would've gone to support these features. Also
features were determined also by marketing folks so hyperbolics may have been down the list.

I don't think square root was done via CORDIC methods - more likely an algorithm very similar to division or a Newton's method which works very well for sqrt(x).


Bill


#15

im thinking they didnt have the rom space *not* to do
hyperbolic functions!

and then using exp(x) = sinh(x) + cosh(x) and log(x) = 2atanh((x-1)/(x+1)).

something im speculating on is that hyperbolic functions have always been, at least internally, present on calculators but they've chosen not to put them on keyboard.

does anyone know how early japanese makers like sharp & casio did their scientific functions. did they copy hp or a different technique altogether.


#16

Hi Hugh...

There are *direct* CORDIC shift & add methods (don't have the reference but I've seen 'em) for the hyperbolics, log funcs, etc. That is, the hyp funcs are not "derived".

This generally seems to allow better accuracy in the last place (digit or bit depending on radix). This 'ulp' issue is a big thing for floating-point engine designers.

There is even concern about rounding/last-place error dealing with scaling & range reduction preprocessing (i.e, bringing input into a range where actual calculations work properly, converge, etc.)

You might want to take a look at the books by:
J. M. Muller, "Elementary Functions" (Birkhauser/Boston);
Israel Koren, (paperbound, don't have title at hand);
Cody & Waite,"Software Manual for the Elementary Functions";

You'll see a lot about last-digit concerns, rounding matters, etc.

Many many Japanese sci calcs of Woodstock vintage do NOT have the same accuracy on logs & trigs. Sometimes seem accurate to only 5+ dec places!


Bill Wiese

San Jose, CA


#17

thanks bill. i'll check out those references,

-- hugh.

#18

In the old reference "Collected Algorithms of the ACM" there was a cute continued fraction routine. You ran a rather simple iteration a few times and got a couple of numbers. By combining these numbers in various simple ways you could got trigs, exponetials, etc. I always thought it was kinda neat.


Possibly Related Threads…
Thread Author Replies Views Last Post
  HP35 Ad. from 1972 with calculation error reused in 2009? Michael Kathke 46 11,186 05-14-2013, 03:52 PM
Last Post: Dieter
  Cheap rare HP35 and HP65 report Waon Shinyoe (China) 4 1,898 02-20-2013, 08:47 AM
Last Post: Frank Boehm (Germany)
  HP35 power on (bug?) Wolfgang 9 2,484 01-15-2013, 12:37 AM
Last Post: Cristian Arezzini
  Repair HP35 Kevin B 9 2,572 11-19-2012, 01:28 AM
Last Post: Geoff Quickfall
  Latest SN of HP35 aj04062 1 1,100 09-29-2012, 11:25 PM
Last Post: Jeff O.
  Happy 40th Birthday, HP35 Jake Schwartz 8 2,563 01-05-2012, 10:42 PM
Last Post: db (martinez, ca.)
  OT: Math, magic and shuffling cards Randy 0 745 12-11-2011, 09:49 AM
Last Post: Randy
  HP35 for $9K? Wilhelm Taylor 8 2,264 01-07-2011, 10:00 AM
Last Post: Gerson W. Barbosa
  HP35 exp(ln(x)) bug, a new number found. Kiwi Geoff 4 1,475 08-27-2010, 08:45 AM
Last Post: Dieter
  non-scientific LED calculator worth more than HP35 red dot? Bart (UK) 6 2,123 02-23-2010, 09:08 AM
Last Post: Eddie W. Shore

Forum Jump: