factory-0.3.2.3: Rational arithmetic in an irrational world.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Factory.Math.Pi

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
Defines the classes of Pi-algorithm which have been implemented.
Synopsis

Type-classes

class Algorithmic algorithm where Source #

  • Defines the methods expected of a Pi-algorithm.
  • Most of the implementations naturally return a Rational, but the spigot-algorithms naturally produce a [Int]; though representing Pi as a big integer with the decimal point removed is clearly incorrect.
  • Since representing Pi as either a Rational or promoted to an Integer, is inconvenient, an alternative decimal String-representation is provided.

Minimal complete definition

openR

Methods

openR Source #

Arguments

:: algorithm 
-> DecimalDigits 
-> Rational

Returns the value of Pi as a Rational.

openI Source #

Arguments

:: algorithm 
-> DecimalDigits 
-> Integer

Returns the value of Pi, promoted by the required precision to form an integer.

openS Source #

Arguments

:: algorithm 
-> DecimalDigits 
-> String

Returns the value of Pi as a decimal String.

Instances

Instances details
Algorithmic Algorithm Source # 
Instance details

Defined in Factory.Math.Implementations.Pi.Spigot.Algorithm

Algorithmic Algorithm Source # 
Instance details

Defined in Factory.Math.Implementations.Pi.BBP.Algorithm

Algorithmic squareRootAlgorithm => Algorithmic (Algorithm squareRootAlgorithm) Source # 
Instance details

Defined in Factory.Math.Implementations.Pi.AGM.Algorithm

Methods

openR :: Algorithm squareRootAlgorithm -> DecimalDigits -> Rational Source #

openI :: Algorithm squareRootAlgorithm -> DecimalDigits -> Integer Source #

openS :: Algorithm squareRootAlgorithm -> DecimalDigits -> String Source #

(Algorithmic squareRootAlgorithm, Algorithmic factorialAlgorithm) => Algorithmic (Algorithm squareRootAlgorithm factorialAlgorithm) Source # 
Instance details

Defined in Factory.Math.Implementations.Pi.Borwein.Algorithm

Methods

openR :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> Rational Source #

openI :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> Integer Source #

openS :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> String Source #

(Algorithmic squareRootAlgorithm, Algorithmic factorialAlgorithm) => Algorithmic (Algorithm squareRootAlgorithm factorialAlgorithm) Source # 
Instance details

Defined in Factory.Math.Implementations.Pi.Ramanujan.Algorithm

Methods

openR :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> Rational Source #

openI :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> Integer Source #

openS :: Algorithm squareRootAlgorithm factorialAlgorithm -> DecimalDigits -> String Source #

(Algorithmic agm, Algorithmic bbp, Algorithmic borwein, Algorithmic ramanujan, Algorithmic spigot) => Algorithmic (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

openR :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> Rational Source #

openI :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> Integer Source #

openS :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> String Source #

Types

Data-types

data Category agm bbp borwein ramanujan spigot Source #

Categorises the various algorithms.

Constructors

AGM agm

Algorithms based on the Arithmetic-geometric Mean.

BBP bbp

https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula.

Borwein borwein

https://en.wikipedia.org/wiki/Borwein%27s_algorithm.

Ramanujan ramanujan

http://www.pi314.net/eng/ramanujan.php.

Spigot spigot

Algorithms from which the digits of Pi slowly drip, one by one.

Instances

Instances details
(Eq agm, Eq bbp, Eq borwein, Eq ramanujan, Eq spigot) => Eq (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

(==) :: Category agm bbp borwein ramanujan spigot -> Category agm bbp borwein ramanujan spigot -> Bool #

(/=) :: Category agm bbp borwein ramanujan spigot -> Category agm bbp borwein ramanujan spigot -> Bool #

(Read agm, Read bbp, Read borwein, Read ramanujan, Read spigot) => Read (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

readsPrec :: Int -> ReadS (Category agm bbp borwein ramanujan spigot) #

readList :: ReadS [Category agm bbp borwein ramanujan spigot] #

readPrec :: ReadPrec (Category agm bbp borwein ramanujan spigot) #

readListPrec :: ReadPrec [Category agm bbp borwein ramanujan spigot] #

(Show agm, Show bbp, Show borwein, Show ramanujan, Show spigot) => Show (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

showsPrec :: Int -> Category agm bbp borwein ramanujan spigot -> ShowS #

show :: Category agm bbp borwein ramanujan spigot -> String #

showList :: [Category agm bbp borwein ramanujan spigot] -> ShowS #

Default bbp => Default (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

def :: Category agm bbp borwein ramanujan spigot #

(Algorithmic agm, Algorithmic bbp, Algorithmic borwein, Algorithmic ramanujan, Algorithmic spigot) => Algorithmic (Category agm bbp borwein ramanujan spigot) Source # 
Instance details

Defined in Factory.Math.Pi

Methods

openR :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> Rational Source #

openI :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> Integer Source #

openS :: Category agm bbp borwein ramanujan spigot -> DecimalDigits -> String Source #