polymerist.maths.fractions.continued ==================================== .. py:module:: polymerist.maths.fractions.continued .. autoapi-nested-parse:: Representations and computation methods for continued fractions and ration approximations to real numbers Attributes ---------- .. autoapisummary:: polymerist.maths.fractions.continued.Real polymerist.maths.fractions.continued.I polymerist.maths.fractions.continued.DEFAULT_INT_TYPE polymerist.maths.fractions.continued.DEFAULT_EPS polymerist.maths.fractions.continued.DEFAULT_TOL Functions --------- .. autoapisummary:: polymerist.maths.fractions.continued.continuant_matrix polymerist.maths.fractions.continued.continued_fraction_to_continuants polymerist.maths.fractions.continued.real_to_continued_fraction_coeffs polymerist.maths.fractions.continued.extended_euclidean_algorithm polymerist.maths.fractions.continued.rational_approxes polymerist.maths.fractions.continued.best_rational_approx Module Contents --------------- .. py:type:: Real :canonical: Union[float, int] .. py:data:: I .. py:data:: DEFAULT_INT_TYPE :type: Type .. py:data:: DEFAULT_EPS :value: 1e-08 .. py:data:: DEFAULT_TOL :value: 1e-06 .. py:function:: continuant_matrix(a: int, int_type: I = DEFAULT_INT_TYPE) -> numpy.ndarray[polymerist.genutils.typetools.numpytypes.Shape[2, 2], int] Homographic matrix for a evaluating the next continuant from a continued fraction coefficient .. py:function:: continued_fraction_to_continuants(coeffs: Iterable[int], int_type: I = DEFAULT_INT_TYPE) -> Generator[tuple[int, int], None, None] Fold a sequence of continued fraction coefficients into successive continuants (rational approximations) .. py:function:: real_to_continued_fraction_coeffs(x: Real, eps: float = DEFAULT_EPS, int_type: I = DEFAULT_INT_TYPE) -> Generator[int, None, None] Euclidean algorithm on a real number to produce the integral continued fraction coefficients .. py:function:: extended_euclidean_algorithm(a: int, b: int, int_type: I = DEFAULT_INT_TYPE) -> tuple[int, int, int] Compute the Extended Euclidean Algorithm between two integers "a" and "b" Returns the greatest common divisor of a and b, along with a pair of Bezout coefficients"x" and "y" which satisfy a*x + b*y = gcd(a, b) .. py:function:: rational_approxes(x: Real, tol: float = DEFAULT_TOL, eps: float = DEFAULT_EPS) -> Generator[tuple[int, int], None, None] Unfold a real number into its continued fraction representation, then generate successive continuants of it .. py:function:: best_rational_approx(x: Real, tol: float = DEFAULT_TOL, eps: float = DEFAULT_EPS) -> tuple[int, int] Provide a rational approximation to a value with the smallest denominator that is within some tolerance