Continued fraction/Arithmetic: Difference between revisions
m
→The bivarate solution G(matrix NG, Continued Fraction N1, Continued Fraction N2)
No edit summary |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 5:
which will perform basic mathmatical operations on continued fractions.
:Gosper has invented an algorithm for performing analytic addition, subtraction, multiplication, and division using continued fractions. It requires keeping track of eight integers which are conceptually arranged at the polyhedron vertices of a cube. Although this algorithm has not appeared in print, similar algorithms have been constructed by Vuillemin (1987) and Liardet and Stambul (1998).
:Gosper's algorithm for computing the continued fraction for (ax+b)/(cx+d) from the continued fraction for x is described by Gosper (1972), Knuth (1998, Exercise 4.5.3.15, pp. 360 and 601), and Fowler (1999). (In line 9 of Knuth's solution, X_k<-|_A/C_| should be replaced by X_k<-min(|_A/C_|,|_(A+B)/(C+D)_|).) Gosper (1972) and Knuth (1981) also mention the bivariate case (axy+bx+cy+d)/(Axy+Bx+Cy+D).
My description follows [http://perl.plover.com/yak/cftalk/INFO/gosper.txt part of Gosper reproduced on perl.plover.com]. This document is text and unnumbered, you may wish to start by searching for "Addition, Multiplication, etc. of Two Continued Fractions" prior to reading the whole thing.
[http://perl.plover.com/classes/cftalk/TALK/slide001.html perl.plover.com] also includes a series of slides as a class on continued fractions. The example [1;5,2] + 1/2 in [[Continued fraction
For these tasks continued fractions will be of the form:
Line 20 ⟶ 18:
so each may be described by the notation [<math>a_0 ; a_1, a_2, ..., a_n</math>]
==[[Continued fraction
During these tasks I shall use the function described in this task to create continued fractions from rational numbers.
Line 30 ⟶ 28:
\end{bmatrix}
</math>
and a function <math>G(\mathrm{matrix}</math> <math>\mathit{NG}, \mathrm{Number
which returns:
: <math>\frac{a_{12}
===Basic identities===
: <math>\mathit{NG} = \begin{bmatrix}
0 & 1 & 1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}</math
computes <math>N_1 + N_2</math>
:<math>\mathit{NG} = \begin{bmatrix}
0 & 1 & -1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}</math
: <math>\mathit{NG} = \begin{bmatrix}▼
1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}</math
: <math>\mathit{NG} = \begin{bmatrix}
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}</math
===Compound operations===
: <math>\mathit{NG} = \begin{bmatrix}
21 & -15 & 28 & -20 \\
0 & 0 & 0 & 1
\end{bmatrix}</math>
calculates (<math>3\times N_1 + 4) \times (7\times N_2 - 5)</math>
:Note that with N<sub>1</sub> = 22, N<sub>2</sub> = 7, and NG = :▼
▲: <math>\begin{bmatrix}
: <math>\mathit{NG} = \begin{bmatrix}
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}</math>
: <math>\mathit{NG} = \begin{bmatrix}
0 & 0 & 0 & 22 \\
0 & 0 & 0 & 7
\end{bmatrix}</math>
==[[Continued fraction
Here we perform basic mathematical operations on a single continued fraction.
==[[Continued fraction
Here we perform basic mathematical operations on two continued fractions.
* Compare two continued fractions
|