D2F, a fast decimal-to-fraction converter, by Joseph K. Horn D2F is the same as DEC2FRAC (see DEC2FRAC.DOC) except it's written in "system RPL". It's therefore shorter, faster, and not editable. 02D9D ! Program 18EDF ; Save current command, verify DEPTH ò 2, check args. 04099 ; <11h> Real, Real 02D9D ! Program 53B88 ; Clear Numeric Results flag (-3) 031AC ; Internal DUP2 22EC3 ; IF (XLIB 1792 0) 2A2C9 ; 1 1ECDF ; Internal > (2:Real,1:Real) 03223 ; Internal SWAP 2AF4D ; Internal FP (1:Real) 1E7DD ; Internal AND (2:Real,1:Real) 22F22 ; Internal THEN (1:Real) 02D9D ! Program 234C1 ; -> (for Programs) (XLIB 1792 16) aka RPN-> [...] ! 'f' (Local Name) [...] ! 'c' (Local Name) 2361E ; ® (XLIB 1792 18) 2A2B4 ; 0 2A2C9 ; 1 [...] ! 'f' (Local Name) 23033 ; WHILE (XLIB 1792 5) 032C2 ; Internal OVER (+2) [...] ! 'c' (Local Name) 1EC40 ; Internal < (2:Real,1:Real) 032C2 ; Internal OVER (+2) 1E7DD ; Internal AND (2:Real,1:Real) 23085 ; Internal REPEAT (1:Real) 02D9D ! Program 2AAAF ; Internal INV (1:Real) 03188 ; Internal DUP 2AF4D ; Internal FP (1:Real) 6109E ; Internal 4 ROLLD (=1432) 2AF60 ; Internal IP (1:Real) 032C2 ; Internal OVER (+2) 2A9BC ; Internal * (2:Real,1:Real) 03295 ; Internal ROT 2A974 ; Internal + (2:Real,1:Real) 03295 ; Internal ROT 0312B ! End Marker 23694 ; END (for WHILE) (XLIB 1792 22) aka WHILEEND 03244 ; Internal DROP 031AC ; Internal DUP2 [...] ! 'c' (Local Name) 22EC3 ; IF (XLIB 1792 0) 031AC ; Internal DUP2 1ECDF ; Internal > (2:Real,1:Real) 22EFA ; THEN (XLIB 1792 1) 02D9D ! Program 2A981 ; Internal - (2:Real,1:Real) 032C2 ; Internal OVER (+2) 2A9FE ; Internal / (2:Real,1:Real) 2AF73 ; Internal CEIL (1:Real) 2A9BC ; Internal * (2:Real,1:Real) 2A981 ; Internal - (2:Real,1:Real) 0312B ! End Marker 22FB5 ; ELSE (XLIB 1792 2) 60F4B ; Internal 3 DROPN 22FD5 ; END (for IF) (XLIB 1792 3) aka IFEND 031AC ; Internal DUP2 2A2C9 ; 1 2A2DE ; 2 23144 ; Internal START (2:Real,1:Real) 03188 ; Internal DUP [...] ! 'f' (Local Name) 2A9BC ; Internal * (2:Real,1:Real) 2A2B4 ; 0 2B529 ; Internal RND (2:Real,1:Real) 03223 ; Internal SWAP 2A9FE ; Internal / (2:Real,1:Real) [...] ! 'f' (Local Name) 503B1 ; Internal -, ABS (2:Real,1:Real) 03223 ; Internal SWAP 2324C ; NEXT (XLIB 1792 11) 22EC3 ; IF (XLIB 1792 0) 1ECDF ; Internal > (2:Real,1:Real) 22F22 ; Internal THEN (1:Real) 03223 ; Internal SWAP 22FD5 ; END (for IF) (XLIB 1792 3) aka IFEND 627A7 ; Internal DROP DUP (=2) [...] ! 'f' (Local Name) 2A9BC ; Internal * (2:Real,1:Real) 2A2B4 ; 0 2B529 ; Internal RND (2:Real,1:Real) 03223 ; Internal SWAP 235FE ; ¯ (end local scope) (XLIB 1792 17) aka >>ABND 22EC3 ; IF (XLIB 1792 0) 03188 ; Internal DUP 2A900 ; Internal ABS (1:Real) 2A2C9 ; 1 1ECDF ; Internal > (2:Real,1:Real) 22F22 ; Internal THEN (1:Real) 5603E ; Internal / (2:Symbolic,1:Symbolic) 22FB5 ; ELSE (XLIB 1792 2) 03244 ; Internal DROP 22FD5 ; END (for IF) (XLIB 1792 3) aka IFEND 0312B ! End Marker 22FB5 ; ELSE (XLIB 1792 2) 03244 ; Internal DROP 22FD5 ; END (for IF) (XLIB 1792 3) aka IFEND 0312B ! End Marker 0312B ! End Marker