hp41programs

Farey Farey Sequences for the HP-41
 

Overview
 

-The Farey sequence Fn is the list of  N rational number  { a1/b1 = 0/1 ; a2/b2 = 1/n ; ....... ; aN/bN = 1/1 } sorted in increasing order
  whith  0 <= ak <= bk <= n  ;  GCD(ak;bk) = 1

-The following program uses the formulae:  ak+1 =  ak.mk - ak-1  ;  bk+1 =  bk.mk - bk-1    where  mk = INT( (bk-1+ n)/bk )

  F1 = { 0/1 ; 1/1 }
  F2 = { 0/1 ; 1/2 ; 1/1 }
  F3 = { 0/1 ; 1/3 ; 1/2 ; 2/3 ; 1/1 }
  F4 = { 0/1 ; 1/4 ; 1/3 ; 1/2 ; 2/3 ; 3/4 ; 1/1 }
  .............................. etc .............................
 

Program Listing
 

Data Registers:  R00 = n ;  R01 = ak-1 ; R02 = bk-1 ; R03 = k ; When the routine stops, R03 = X-register = N = the number of elements in the list.
Flag:   F29
Subroutines: /

-Line 33 is   append   /
 
 

01  LBL "FAREY"
02  STO 00
03  STO 02
04  0
05  STO 03
06  SIGN
07  CHS
08  STO 01
09  ST+ 02
10  LBL 01
11  ISG 03
12  CLX
13  RCL 00
14  RCL 02          
15  +
16  R^
17  /
18  INT
19  ENTER^
20  R^
21  ST* Y
22  X<> 02          
23  -
24  X<>Y
25  R^
26  ST* Y
27  X<> 01
28  -
29  FIX 0
30  CF 29
31  " "
32  ARCL X         
33  "~/"
34  ARCL Y
35  FIX 4
36  SF 29
37  AVIEW
38  X#Y?
39  GTO 01          
40  RCL 03
41  CLA
42  END

 
  ( 68 bytes / SIZE 004 )
 
 

      STACK        INPUTS   ... AVIEW ...     OUTPUTS
           Y             /            bk            /
           X             n            ak           N(n)

  where N(n) = the number of fractions

Example:

   5   XEQ "FAREY"  >>>>   0/1  1/5  1/4  1/3  2/5  1/2  3/5  2/3  3/4  4/5  1/1

  and     X-register = 11 = the number of terms in this Farey sequence = R03.
 

References:

[1]  John H. Conway  & Richard K. Guy - "The Book of Numbers"  - Springer Verlag -  ISBN  0-387-97993-X
[2]  Robert Pulluard - "La HP-48 en Liberté" - D3i Diffusion - ISBN 2-908791-16-1 ( in French )