# HP Calculator Wiki

### Site Tools

benchmarks:savage:accuracy

### Table of Contents

See the remarks on savage benchmark. For that reason we “partially” dismiss the importance of the accuracy in the savage test.

## Accuracy section

### Physical calculators

1. HP 50g, 2.15, HPGCC
• ? digits
• Time: around 0.52 secs @12mhz
• Result: 2500 1)
• Absolute error: 0
• Code: ?
2. Hp 9g
• 22 digits (confirmed?)
• Time: ?
• Result: 2500 2)
• Absolute error: 0
• Code:
INPUT N;
A=1;
FOR(I=1;I<N;++I){
A=tan(tan-1(e^(ln(|/(A*A)))))+1;
}
PRINT A;
END; 
3. HP 34s, 3.2r3371
• ? digits
• Time: ?
• Result:
• double 2499.999999999999999999999999999661
• single 2500.000000001578
• Absolute error:
• double 3.39 e-28
• single 1.578 e-9
• Code: 3)
4. sharp PC-E500S
• ? digits
• Time: ?
• Result:
• single precision 2500.000056
• double precision 2499.9999999999999999
• Absolute error:
• single precision 5.6 e-5
• double precision 1 e-16
• Code: ?
5. sharp PC-1475
• ? digits
• Time: ?
• Result:
• single precision 2499.987313
• double precision 2499.9999999999999925
• Absolute error:
• single precision 1.2687 e-2
• double precision 7.5 e-15
• Code: ?
6. HP 200 LX
• ? digits
• Time: around 210 secs
• Result: 2499.999999998308
• Absolute error: 1.692 e-9
• Code:
0*L(A,1)+SIGMA(I,1,N,1,
0*L(A,1+TAN(ATAN(EXP(LN(SQRT(g(A)*g(A))))))))
+L(B,g(A))-B

2499 N and solving for B
7. TI 83+ SE
• ? digits
• Time: ?
• Result: 2499.999992
• Absolute error: 8 e-6
• Code:
1->A
For(I,1,2499)
tan(tan-1(e^(ln(\|(A^2)))))+1->A
End
Disp A
8. HP 50g, 2.15, userRPL
• ? digits
• Time: around 65 secs
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Code: 4)
• ? digits
• Time: around 65 secs
• Result: 2499.99946106
• Absolute error: 5.3894 e-4
• Code: 5)
9. HP 49g
• ? digits
• Time: around 111 secs
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Code: See 50g
10. HP 49gx
• ? digits
• Time: around 118 secs
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Code: See 50g
11. HP 49gx
• ? digits
• Time: around 193 secs
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Code: See 50g
12. HP 28s
13. HP71 Basic
• 12 digits
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Note: All the other Saturn based machines, such as the HP48, should get this result also (but maybe they have more digits!)
• >RADIANS
>1 T=TIME @ A=0 @ FOR I=1 TO 2500 @ B=SQR(A+1) @ A=TAN(ATAN(EXP(LN(B*B)))) @ NEXT I
>2 DISP A;TIME-T
14. HP 28s
• ? digits
• Time: around 398 secs
• Result: 2499.99948647
• Absolute error: 5.1353 e-4
• Code: see 28s
15. HP 19BII
• ? digits
• Time: around 360 secs
• Result: 2500.00005173
• Absolute error: 5.173 e-5
• Code:
0*L(A,1)+SIGMA(I,1,N,1,
0*L(A,1+TAN(ATAN(EXP(LN(SQRT(g(A)*g(A))))))))
+L(B,g(A))-B

2499 N and solving for B
16. HP 39gII
• ? digits
• Time: 3.6 s
• Result: 2499.99946106
• Absolute error: 5.3894 e-4
• Code:
EXPORT SAVAGE()
BEGIN
A:=0
FOR I FROM 1 TO 2500 DO
A:=TAN(ATAN(EXP(LN(sqrt(A+1)²))));
END:
END; 
17. HP 30b
• ? digits
• Time: around 6 secs
• Result: 2499.99946106
• Absolute error: 5.3894 e-4
• Code: ?
18. HP 32S
• ? digits
• Time: around 355 s
• Result: 2499.99946106
• Absolute error: 5.3894 e-4
• Code: ?
19. HP 32SII
• ? digits
• Time: around 390
• Result: 2499.99946106
• Absolute error: 5.3894 e-4
• Code: ?
20. HP 42s
21. HP 86b
• ? digits
• Time: around 82 secs
• Result: 2499.99942403
• Absolute error: 5.7597 e-4
• Code:
5 RAD
7 t=TIME
10 A=1
20 FOR I=1 TO 2499
30 A=TAN (ATN (EXP (LOG (SQR (A*A)))))+1
40 NEXT I
50 PRINT A
55 PRINT HMS\$ (TIME -t)
60 END
22. HP 33s
• ? digits
• Time: 475 HP 32SII vs 35S
• Result: 2499.99942403
• Absolute error: 5.7597 e-4
• Code: see the note 8)
23. HP 35s
• Source: HP 32SII
• ? digits
• Time: around 630 secs
• Result: 2499.99939863
• Absolute error: 6.0137 e-4
• Code: ?
24. sharp PC-1262
• ? digits
• Time: ?
• Result: 2499.98731
• Absolute error: 1.269 e-2
• Code: ?
25. sharp PC-1403
• ? digits
• Time: ?
• Result: 2499.98731
• Absolute error: 1.269 e-2
• Code: ?
26. HP 67
• ? digits
• Time: around 5'840 s
• Result: 2499.976148
• Absolute error: 2.3852 e-2
• Code: 9)
27. HP 19c
• ? digits
• Time: around 6'600 s
• Result: 2499.976148
• Absolute error: 2.3852 e-2
• Code: ?
28. HP 11C
• ? digits
• Time: ?
• Result: 2499.970322
• Absolute error: 2.9678 e-2
• Code: ?
29. HP 41C
• ? digits
• Time: ?
• Result: 2499.970322
• Absolute error: 2.9678 e-2
• Code: ?
30. HP 15c LE
31. HP 41cx
• ? digits
• Time: around 3'300 secs
• Result: 2499.969898
• Absolute error: 3.0102 e-2
• Code: 11)
32. HP 15c
• ? digits
• Time: around 5'840 secs
• Result: 2499.969898
• Absolute error: 3.0102 e-2
• Code: see 15c le
33. HP 34c
• ? digits
• Time: around 7'530 secs
• Result: 2499.969898
• Absolute error: 3.0102 e-2
• Code: 12)
34. HP 25
• ? digits
• Time: around 5'940 s
• Result: 2499.079996
• Absolute error: 9.20004 e-1
• Code: 13)

### Emulators on mobile/handheld devices smaller than 7'' (7'' included)

1. Free 42 (other info?)
• ? digits
• Time: ?
• Result: 2500.000000000000729718363
• Absolute error: 7.29718363 e-15
• Code ?
1) , 2)
is it just a lucky rounding or there is an error but we don't check entirely the result? One should do 2500-result
3)
LBL A
TICKS
2
4
9
9
# 001
LBL 00
x[^2]
[sqrt]
LN
e[^x]
ATAN
TAN
INC X
DSE Y
GTO 00
TICKS
RCL- T
SDR 001
x[<->] Y
END 
4)
@ "Savage benchmark" for 48 and 49 series.
@ 48 series checksum: # ECAh
@ 48 series size:        159
@ 49 series checksum: # B0C9h
@ 49 series size:        159.
\<<             @
STD           @ Force standard display mode.
RCLF          @ Get original flags.
-55. SF       @ Force last arguments disabled.
64. STWS      @ Force wordsize.
RAD           @ Force radians mode.
MEM DROP      @ Force a GC.
TICKS         @ Initial system time.
1.            @ Initial value.
1. 2499.      @ Loop start/stop values.
START         @
DUP *       @ Square.
\v/         @ Square root command.
LN          @
EXP         @
ATAN        @
TAN         @
1. +        @
NEXT          @
TICKS         @ Ending system time.
ROT           @ Move initial time to level 1.
-             @ Elapsed time.
B\->R         @ Convert binary to real.
"Ticks"       @
\->TAG        @
DUP           @
8192. /       @ Convert ticks to seconds.
3. RND        @ Round to 3 decimal places.
"Seconds"     @
\->TAG        @
4. ROLL STOF  @ Restore original flags.
\>>
5)
<<
RAD TICKS
0.
1. 2500. START
1. + sqrt SQ LN EXP ATAN TAN
NEXT
SWAP TICKS SWAP - B->R 8192. /
DEG
800. 2. BEEP
>> 
6)
@ "Savage benchmark" for 28 series.
@ A 28C must be in HEX mode when this program is entered to ensure
@ that the correct address is supplied to SYSEVAL!
\<<             @
STD           @
RCLF          @ Get original flags.
31 CF         @ Force last arguments disabled.
64 STWS       @ Force wordsize.
RAD           @ Force radians mode.
MEM DROP      @ Force a GC.

@ Uncomment the binary integer in one of the following 3 lines.
@ #123E @     @ For 28C ROM version 1BB.
@ #1266 @     @ For 28C ROM version 1CC.
@ #11CAh @    @ For 28S ROM version 2BB.

SYSEVAL       @ Initial system time.
1             @ Initial value.
1 2499        @ Loop start/stop values.
START         @
DUP *       @ Square.
\v/         @ Square root command.
LN          @
EXP         @
ATAN        @
TAN         @
1  +        @
NEXT          @

@ Uncomment the binary integer in one of the following 3 lines.
@ #123E @     @ For 28C ROM version 1BB.
@ #1266 @     @ For 28C ROM version 1CC.
@ #11CAh @    @ For 28S ROM version 2BB.

SYSEVAL       @ Ending system time.
ROT           @ Move initial time to level 1.
-             @ Elapsed time.
B\->R         @ Convert binary to real.
DUP           @
\->STR        @ Convert real to character string.
"Ticks="      @
SWAP +        @
SWAP          @
8192 /        @ Convert ticks to seconds.
3 FIX RND     @ Round to 3 decimal places.
\->STR        @ Convert real to character string.
"Seconds="    @
SWAP +        @
4 ROLL STOF   @ Restore original flags.
\>>
7)
01 LBL "SB"
02 RAD
03 0
04 LBL 01
05 1
06 +
07 SQRT
08 X^2
09 LN
10 E^X
11 ATAN
12 TAN
13 DSE ST Y
14 GTO 01
15 BEEP
16 DEG
17 END
8)
LBL A
1
STO A
STO I
LBL B
RCL A
x^2
\|x (Square root of x)
LN
e^x
ATAN
TAN
1
+
STO A
1
STO+ I
RCL I
2,499
x>=y?
GTO B
RCL A
RTN
9)
01 LBL B
02 RAD
03 ST I
04 0
05 LBL 1
06 1
07 +
08 SQRT
09 X^2
10 LN
11 e^X
12 ATAN
13 TAN
14 DSZ I
15 GTO 1
16 DEG
17 RTN
10)
001 LBL B
002 STO 0
003 RAD
004 FIX 9
005 0
006 LBL 0
007 1
008 +
009 SQRT
010 X^2
011 LN
012 e^X
013 ARCTAN
014 TAN
015 DSE 0
016 GTO 0
017 DEG
018 RTN
11) , 12)
01 LBL B
02 RAD
03 STO I
04 0
05 LBL 1
06 1
07 +
08 SQRT
09 X^2
10 LN
11 e^X
12 ATAN
13 TAN
14 DSE I
15 GTO 1
16 DEG
17 RTN
13)
01 RAD
02 STO 0
03 0
04 STO 1
05 RCL 1
06 1
07 +
08 SQRT
09 X^2
10 LN
11 e^X
12 ATAN
13 TAN
14 STO 1
15 RCL 0
16 1
17 -
18 STO 0
19 X=0?
20 GTO 22
21 GTO 05
22 RCL 1
23 DEG
24 GTO 00
benchmarks/savage/accuracy.txt · Last modified: 2013/09/13 07:36 by pier4r