CreatingRhythms-1.8.0.7
Copyright(c) Eric Bailey 2024-2025
LicenseMIT
Maintainereric@ericb.me
Stabilitystable
PortabilityPOSIX
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Rhythm.ContinuedFractions

Description

Simple continued fractions represented by nonempty lists of terms.

\[ \begin{align*} [b_0; b_1, b_2, b_3, \dotsc] &= b_0 + \cfrac{1}{b_1 + \cfrac{1}{b_2 + \cfrac{1}{b_3 + \dotsm}}} \\ &= b_0 + \mathop{\vcenter{\Huge\mathcal{K}}}_{n=1}^{\infty} \frac{1}{b_n} \end{align*} \]

Synopsis

Documentation

newtype ContinuedFraction Source #

A ContinuedFraction is a NonEmpty, potentially infinite, list of integer terms.

>>> ContinuedFraction (1 :| [2,3,4])
[1;2,3,4]

Constructors

ContinuedFraction 

Instances

Instances details
Generic ContinuedFraction Source # 
Instance details

Defined in Data.Rhythm.ContinuedFractions

Associated Types

type Rep ContinuedFraction :: Type -> Type #

Show ContinuedFraction Source # 
Instance details

Defined in Data.Rhythm.ContinuedFractions

Eq ContinuedFraction Source # 
Instance details

Defined in Data.Rhythm.ContinuedFractions

Ord ContinuedFraction Source # 
Instance details

Defined in Data.Rhythm.ContinuedFractions

type Rep ContinuedFraction Source # 
Instance details

Defined in Data.Rhythm.ContinuedFractions

type Rep ContinuedFraction = D1 ('MetaData "ContinuedFraction" "Data.Rhythm.ContinuedFractions" "CreatingRhythms-1.8.0.7-DGB2JNDHfptLnJAgYi7IVp" 'True) (C1 ('MetaCons "ContinuedFraction" 'PrefixI 'True) (S1 ('MetaSel ('Just "terms") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Integer))))

collapseFraction :: ContinuedFraction -> Rational Source #

Evaluate a finite ContinuedFraction.

>>> collapseFraction (ContinuedFraction (1 :| [2,3,4]))
43 % 30

continuedFractionSqrt :: Integral a => a -> ContinuedFraction Source #

Calculate the ContinuedFraction representation of the square root of a given number.

>>> continuedFractionSqrt 7
[2;1,1,1,4]