HP71B RES bug? - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html) +--- Forum: General Forum (/forum-4.html) +--- Thread: HP71B RES bug? (/thread-14294.html) HP71B RES bug? - Albert Chan - 01-02-2020 02:05 PM I had assumed RES = result of last expression (or last DISP expression) However, RES may be affected by user defined function. >10 DEF FNK(K,X) = K*X >20 DEF FNR(X) = FNROOT(1,2,FVAR*FVAR-X) >RUN >1 + 0 ﻿ ﻿ ﻿1 >FNK(2,RES) + FNK(3,RES) + FNK(4,RES) ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ; expected 2*1 + 3*1 + 4*1 = 9 ﻿ ﻿ ﻿32 ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿; got 2*1 + 3*2*1 + 4*3*2*1 = 32 >FNR(RES*2) + FNR(RES/2) ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿; expected √64+ √16 = 12 ﻿ ﻿ ﻿10 ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿; got √64 + √4 = 10 Is this a bug ? RE: HP71B RES bug? - Sylvain Cote - 01-02-2020 03:29 PM The reference manual says: Code: ```The HP-71 stores the result of each numeric assignment and calculator statement in a register re- served for use by RES. This occurs prior to any rounding that may take place due to a SHORT or  INTEGER destination variable. RES recalls the value currently stored in this register. RES can be  particularly useful in iterative computations because it is much faster than variable references.``` So I would assume that the equal of the user defined function fit the above description and it matches you're "got" values. Step 1 : 1 + 0 Code: `1 + 0          // RES is set to 1` Step 2 : FNK(2,RES) + FNK(3,RES) + FNK(4,RES) Code: ```               // RES has 1 FNK(2,1)       // RES is set to 2 +              // push 2 to stack FNK(3,2)       // RES is set to 6 +              // push 6 to stack FNK(4,6)       // RES is set to 24 2 + 6 + 24     // do calculation on latest value and on pushed values 32             // value displayed, RES is set to 32``` Step 3 : FNR(RES*2) + FNR(RES/2) Code: ```               // RES has 32 FNR(32*2)      // RES is set to 8 +              // push result to stack FNR(8/2)       // RES is set to 2 8 + 2          // do calculation on latest value and on pushed values 10             // value displayed, RES is set to 10```