Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Exports a common interface for square-root implementations.
- Provides utilities for these implementations.
- class Algorithmic algorithm where
- squareRootFrom :: (Real operand, Show operand) => algorithm -> Estimate -> DecimalDigits -> operand -> Result
- squareRoot :: (Real operand, Show operand) => algorithm -> DecimalDigits -> operand -> Result
- class Iterator algorithm where
- step :: Real operand => algorithm -> operand -> Result -> Result
- convergenceOrder :: algorithm -> ConvergenceOrder
- 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.
:: (Real operand, Show operand) | |
=> algorithm | |
-> Estimate | An initial estimate from which to start. |
-> DecimalDigits | The required precision. |
-> operand | The value for which to find the square-root. |
-> Result | Returns an improved estimate of the square-root, found using the specified algorithm, accurate to at least the required number of decimal digits. |
:: (Real operand, Show operand) | |
=> algorithm | |
-> DecimalDigits | The required precision. |
-> operand | The value for which to find the square-root. |
-> Result | Returns an estimate of the square-root, found using the specified algorithm, accurate to at least the required number of decimal digits. |
class Iterator algorithm where Source
The interface required to iterate, from an estimate of the required value, to the next approximation.
:: Real operand | |
=> algorithm | |
-> operand | The value for which the square-root is required; |
-> Result | The current estimate; |
-> Result | An improved estimate; |
:: algorithm | |
-> ConvergenceOrder | The ultimate ratio of successive terms as the iteration converges. |
Types
Type-synonyms
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.