Hewlett-Packard HP-17B

Datasheet legend
Ab/c: Fractions calculation
AC: Alternating current
BaseN: Number base calculations
Card: Magnetic card storage
Cmem: Continuous memory
Cond: Conditional execution
Const: Scientific constants
Cplx: Complex number arithmetic
DC: Direct current
Eqlib: Equation library
Exp: Exponential/logarithmic functions
Fin: Financial functions
Grph: Graphing capability
Hyp: Hyperbolic functions
Ind: Indirect addressing
Intg: Numerical integration
Jump: Unconditional jump (GOTO)
Lbl: Program labels
LCD: Liquid Crystal Display
LED: Light-Emitting Diode
Li-ion: Lithium-ion rechargeable battery
Lreg: Linear regression (2-variable statistics)
mA: Milliamperes of current
Mtrx: Matrix support
NiCd: Nickel-Cadmium rechargeable battery
NiMH: Nickel-metal-hydrite rechargeable battery
Prnt: Printer
RTC: Real-time clock
Sdev: Standard deviation (1-variable statistics)
Solv: Equation solver
Subr: Subroutine call capability
Symb: Symbolic computing
Tape: Magnetic tape storage
Trig: Trigonometric functions
Units: Unit conversions
VAC: Volts AC
VDC: Volts DC
Years of production: 1988-1990 Display type: Graphical display  
New price: USD 110.00   Display color: Black  
    Display technology: Liquid crystal display 
Size: 6"×3"×½" Display size: 131×16 pixels
Weight: 6 oz    
    Entry method: Algebraic with precedence 
Batteries: 3×"LR44" button cell Advanced functions: Exp Lreg Solv Fin Cmem Snd Mtrx 
External power:   Memory functions: +/-/×/÷ 
I/O: IR output     
    Programming model: Formula programming 
Precision: 12 digits Program functions: Jump Cond  
Memories: 6700(0) bytes Program display: Formula display  
Program memory: 6700 kilobytes Program editing: Formula entry  
Chipset: Saturn   Forensic result:  

hp17b.jpg (20262 bytes)The HP-17B is a high-end business calculator from Hewlett-Packard. This is not a keystroke-programmable machine; instead, it has a built-in "SOLVE" feature that lets you enter mathematical formulae, which the calculator can solve for unknown variables.

The particular version of the "SOLVE" feature implemented on this machine has two special features: conditional execution and loops. The IF function can evaluate one of two expressions depending on whether a specific condition is true or false; the Σ function can be used to evaluate an expression repetitively, calculating the sum.

With these two functions and the calculator's relatively large memory, it is possible to implement fairly sophisticated solutions. One example is the Gamma function; the implementation I present here actually includes an iterative component that extends the function's domain to negative numbers. Despite the length and complexity, the calculator evaluates the function very quickly; what takes time is the verification of the equation when the "SOLVE" feature is invoked.

G=(-1)^Σ(I:X:0:1:1)×EXP(LN(2.50662827511×(X+Σ(I:X:0:1:1))^6+
   83.8676043424×(X+Σ(I:X:0:1:1))^5+1168.92649479×(X+Σ(I:X:0:1:1))^4+
   8687.24529705×(X+Σ(I:X:0:1:1))^3+36308.2951477×(X+Σ(I:X:0:1:1))^2+
   80916.6278952×(X+Σ(I:X:0:1:1))+75122.633153)-
   Σ(I:0:6:1:LN(X+Σ(J:X:0:1:1)+I))+(X+Σ(I:X:0:1:1)+.5)×
   LN(X+Σ(I:X:0:1:1)+5.5)-X-Σ(I:X:0:1:1)-5.5-Σ(I:X:0:1:LN(-I)))