Table 6.1. Selected Numeric Types
Type | Description |
---|---|
Double | Double-precision floating point. A common choice for floating-point data. |
Float | Single-precision floating point. Often used when interfacing with C. |
Int | Fixed-precision signed integer; minimum range [-2^29..2^29-1]. Commonly used. |
Int8 | 8-bit signed integer |
Int16 | 16-bit signed integer |
Int32 | 32-bit signed integer |
Int64 | 64-bit signed integer |
Integer | Arbitrary-precision signed integer; range limited only by machine resources. Commonly used. |
Rational | Arbitrary-precision rational numbers. Stored as a ratio of two Integer s. |
Word | Fixed-precision unsigned integer; storage size same as Int |
Word8 | 8-bit unsigned integer |
Word16 | 16-bit unsigned integer |
Word32 | 32-bit unsigned integer |
Word64 | 64-bit unsigned integer |
Table 6.2. Selected Numeric Functions and Constants
Item | Type | Module | Description |
---|---|---|---|
(+) | Num a => a -> a -> a | Prelude | Addition |
(-) | Num a => a -> a -> a | Prelude | Subtraction |
(*) | Num a => a -> a -> a | Prelude | Multiplication |
(/) | Fractional a => a -> a -> a | Prelude | Fractional division |
(**) | Floating a => a -> a -> a | Prelude | Raise to the power of |
(^) | (Num a, Integral b) => a -> b -> a | Prelude | Raise a number to a non-negative, integral power |
(^^) | (Fractional a, Integral b) => a -> b -> a | Prelude | Raise a fractional number to any integral power |
(%) | Integral a => a -> a -> Ratio a | Data.Ratio | Ratio composition |
(.&.) | Bits a => a -> a -> a | Data.Bits | Bitwise and |
(.|.) | Bits a => a -> a -> a | Data.Bits | Bitwise or |
abs | Num a => a -> a | Prelude | Absolute value |
approxRational | RealFrac a => a -> a -> Rational | Data.Ratio | Approximate rational composition based on fractional numerators and denominators |
cos | Floating a => a -> a | Prelude | Cosine. Also provided are acos , cosh , and acosh , with the same type. |
div | Integral a => a -> a -> a | Prelude | Integer division always truncated down; see also quot |
fromInteger | Num a => Integer -> a | Prelude | Conversion from an Integer to any numeric type |
fromIntegral | (Integral a, Num b) => a -> b | Prelude | More general conversion from any Integral to any numeric type |
fromRational | Fractional a => Rational -> a | Prelude | Conversion from a Rational . May be lossy. |
log | Floating a => a -> a | Prelude | Natural logarithm |
logBase | Floating a => a -> a -> a | Prelude | Log with explicit base |
maxBound | Bounded a => a | Prelude | The maximum value of a bounded type |
minBound | Bounded a => a | Prelude | The minimum value of a bounded type |
mod | Integral a => a -> a -> a | Prelude | Integer modulus |
pi | Floating a => a | Prelude | Mathematical constant pi |
quot | Integral a => a -> a -> a | Prelude | Integer division; fractional part of quotient truncated towards zero |
recip | Fractional a => a -> a | Prelude | Reciprocal |
rem | Integral a => a -> a -> a | Prelude | Remainder of integer division |
round | (RealFrac a, Integral b) => a -> b | Prelude | Rounds to nearest integer |
shift | Bits a => a -> Int -> a | Bits | Shift left by the specified number of bits, which may be negative for a right shift. |
sin | Floating a => a -> a | Prelude | Sine. Also provided are asin , sinh , and asinh , with the same type. |
sqrt | Floating a => a -> a | Prelude | Square root |
tan | Floating a => a -> a | Prelude | Tangent. Also provided are atan , tanh , and atanh , with the same type. |
toInteger | Integral a => a -> Integer | Prelude | Convert any Integral to an Integer |
toRational | Real a => a -> Rational | Prelude | Convert losslessly to Rational |
truncate | (RealFrac a, Integral b) => a -> b | Prelude | Truncates number towards zero |
xor | Bits a => a -> a -> a | Data.Bits | Bitwise exclusive or |
Table 6.3. Typeclass Instances for Numeric Types
Type | Bits | Bounded | Floating | Fractional | Integral | Num | Real | RealFrac |
---|---|---|---|---|---|---|---|---|
Double | X | X | X | X | X | |||
Float | X | X | X | X | X | |||
Int | X | X | X | X | X | |||
Int16 | X | X | X | X | X | |||
Int32 | X | X | X | X | X | |||
Int64 | X | X | X | X | X | |||
Integer | X | X | X | X | ||||
Rational or any Ratio | X | X | X | X | ||||
Word | X | X | X | X | X | |||
Word16 | X | X | X | X | X | |||
Word32 | X | X | X | X | X | |||
Word64 | X | X | X | X | X |
Table 6.4. Conversion Between Numeric Types
Source Type | Destination Type | |||
---|---|---|---|---|
Double , Float | Int , Word | Integer | Rational | |
Double , Float | fromRational . toRational | truncate * | truncate * | toRational |
Int , Word | fromIntegral | fromIntegral | fromIntegral | fromIntegral |
Integer | fromIntegral | fromIntegral | N/A | fromIntegral |
Rational | fromRational | truncate * | truncate * | N/A |
No comments:
Post a Comment