Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Exports a common interface for square-root implementations.
- Provides utilities for these implementations.
- class Algorithmic algorithm where
- class Iterator algorithm where
- type Result = Rational
- type Estimate = (Result, DecimalDigits)
- getAccuracy :: Real operand => operand -> Result -> DecimalDigits
- getDiscrepancy :: Real operand => operand -> Result -> Result
- getEstimate :: (Real operand, Show operand) => operand -> Estimate
- isPrecise :: Real operand => operand -> Result -> Bool
Type-classes
class Algorithmic algorithm where Source #
Defines the methods expected of a square-root algorithm.
squareRootFrom :: (Real operand, Show operand) => algorithm -> Estimate -> DecimalDigits -> operand -> Result Source #
squareRoot :: (Real operand, Show operand) => algorithm -> DecimalDigits -> operand -> Result Source #
class Iterator algorithm where Source #
The interface required to iterate, from an estimate of the required value, to the next approximation.
step :: Real operand => algorithm -> operand -> Result -> Result Source #
convergenceOrder :: algorithm -> ConvergenceOrder Source #
Types
Type-synonyms
type Result = Rational Source #
The result-type; actually, only the concrete return-type of simplify
, stops it being a polymorphic instance of Fractional
.
type Estimate = (Result, DecimalDigits) Source #
Contains an estimate for the square-root of a value, and its accuracy.
Functions
getAccuracy :: Real operand => operand -> Result -> DecimalDigits Source #
- For a given value and an estimate of its square-root, returns the number of decimals digits to which the square-root is accurate; including the integral digits.
- CAVEAT: the result returned for an exact match has been bodged.
getDiscrepancy :: Real operand => operand -> Result -> Result Source #
- The signed difference between the square of an estimate for the square-root of a value, and that value.
- Positive when the estimate is too low.
- CAVEAT: the magnitude is twice the error in the square-root.
getEstimate :: (Real operand, Show operand) => operand -> Estimate Source #
Uses Double
-precision floating-point arithmetic, to obtain an initial estimate for the square-root, and its accuracy.