Числовые
| Авторские права | (с) Университет Глазго 2002 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Устойчивость | предварительная |
| Переносимость | переносимая |
| Безопасный Haskell | Достоверный |
| Язык | Haskell2010 |
Содержание
Описание
Разное, в основном функции для чтения и отображения RealFloat-подобных значений.
Отображение
Аргументы
| :: Real a | |
| => (a -> ShowS) | функция, которая может отображать беззнаковые значения |
| -> Int | приоритет окружающего контекста |
| -> a | значение для отображения |
| -> ShowS |
Преобразует значение, которое может быть отрицательным Real в строку.
showIntAtBase :: (Integral a, Show a) => a -> (Int -> Char) -> a -> ShowS Исходный код
Отображает неотрицательное Integral число, используя базу, указанную в первом аргументе, и представление символов, указанное во втором.
showInt :: Integral a => a -> ShowS Исходный код
Отображает неотрицательные Integral числа в системе счисления по основанию 10.
showHex :: (Integral a, Show a) => a -> ShowS Исходный код
Отображает неотрицательные Integral числа в шестнадцатеричной системе.
showOct :: (Integral a, Show a) => a -> ShowS Исходный код
Отображает неотрицательные Integral числа в восьмеричной системе.
showEFloat :: RealFloat a => Maybe Int -> a -> ShowS Исходный код
Отображает знаковое RealFloat значение с использованием экспоненциальной (научной) нотации (например, 2.45e2, 1.5e-3).
В вызове showEFloat digs val, если digs равно Nothing, значение отображается с полной точностью; если digs равно Just d, отображается не более d цифр после запятой.
showFFloat :: RealFloat a => Maybe Int -> a -> ShowS Исходный код
Отображает знаковое RealFloat значение с использованием стандартной десятичной нотации (например, 245000, 0.0015).
В вызове showFFloat digs val, если digs равно Nothing, значение отображается с полной точностью; если digs равно Just d, отображается не более d цифр после запятой.
showGFloat :: RealFloat a => Maybe Int -> a -> ShowS Исходный код
Отображает знаковое RealFloat значение с использованием стандартной десятичной нотации для аргументов, абсолютное значение которых лежит между 0.1 и 9,999,999, и экспоненциальной нотации в противном случае.
В вызове showGFloat digs val, если digs равно Nothing, значение отображается с полной точностью; если digs равно Just d, отображается не более d цифр после запятой.
showFFloatAlt :: RealFloat a => Maybe Int -> a -> ShowS Исходный код
Отображает знаковое RealFloat значение с использованием стандартной десятичной нотации (например, 245000, 0.0015).
Это ведет себя как showFFloat, за исключением того, что десятичная точка всегда гарантируется, даже если она не нужна.
С версии: base-4.7.0.0
showGFloatAlt :: RealFloat a => Maybe Int -> a -> ShowS Исходный код
Отображает знаковое RealFloat значение с использованием стандартной десятичной нотации для аргументов, абсолютное значение которых лежит между 0.1 и 9,999,999, и экспоненциальной нотации в противном случае.
Это ведет себя как showFFloat, за исключением того, что десятичная точка всегда гарантируется, даже если она не нужна.
С версии: base-4.7.0.0
showFloat :: RealFloat a => a -> ShowS Исходный код
Отображает знаковое RealFloat значение с полной точностью с использованием стандартной десятичной нотации для аргументов, абсолютное значение которых лежит между 0.1 и 9,999,999, и экспоненциальной нотации в противном случае.
showHFloat :: RealFloat a => a -> ShowS Исходный код
Отображает значение с плавающей запятой в шестнадцатеричном формате, аналогично спецификатору %a в C printf.
>>> showHFloat (212.21 :: Double) "" "0x1.a86b851eb851fp7" >>> showHFloat (-12.76 :: Float) "" "-0x1.9851ecp3" >>> showHFloat (-0 :: Double) "" "-0x0p+0"
floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int) Исходный код
floatToDigits принимает основание и неотрицательное RealFloat число и возвращает список цифр и показатель степени. В частности, если x>=0, и
floatToDigits base x = ([d1,d2,...,dn], e)
тогда
n >= 1
x = 0.d1d2...dn * (base**e)
0 <= di <= base-1
Чтение
Примечание: readInt является «дуалом» showIntAtBase, а readDec является «дуалом» showInt. Несогласованное именование — историческая случайность.
readSigned :: Real a => ReadS a -> ReadS a Исходный код
Считывает значение со знаком Real, заданное считывателем для беззнакового значения.
Аргументы
| :: Num a | |
| => a | база |
| -> (Char -> Bool) | предикат, определяющий допустимые цифры в этой базе |
| -> (Char -> Int) | функция, преобразующая допустимый символ цифры в |
| -> ReadS a |
Читает беззнаковое Integral значение в произвольной базе.
readDec :: (Eq a, Num a) => ReadS a Source
Читает беззнаковое число в десятичной записи.
>>> readDec "0644" [(644,"")]
readOct :: (Eq a, Num a) => ReadS a Source
Читает беззнаковое число в восьмеричной записи.
>>> readOct "0644" [(420,"")]
readHex :: (Eq a, Num a) => ReadS a Source
Читает беззнаковое число в шестнадцатеричной записи. Допускаются как прописные, так и строчные буквы.
>>> readHex "deadbeef" [(3735928559,"")]
readFloat :: RealFrac a => ReadS a Source
Читает беззнаковое RealFrac значение, выраженное в десятичной экспоненциальной записи.
lexDigits :: ReadS String Source
Читает непустую строку десятичных цифр.
Разное
fromRat :: RealFloat a => Rational -> a Source
Преобразует Rational значение в любой тип класса RealFloat.
class Fractional a => Floating a where Source
Тригонометрические и гиперболические функции и связанные с ними функции.
В отчёте по Haskell не определены законы для Floating. Однако, (+), (*) и exp обычно ожидается, что они определяют экспоненциальное поле и обладают следующими свойствами:
-
exp (a + b)=exp a * exp b -
exp (fromInteger 0)=fromInteger 1
Минимальное полное определение
pi, exp, log, sin, cos, asin, acos, atan, sinh, cosh, asinh, acosh, atanh
Методы
(**) :: a -> a -> a infixr 8 Source
log1p x вычисляет log (1 + x), но обеспечивает более точные результаты для малых (по абсолютной величине) значений x если это возможно.
С версии: base-4.9.0.0
expm1 x вычисляет exp x - 1, но обеспечивает более точные результаты для малых (по абсолютной величине) значений x если это возможно.
С версии: base-4.9.0.0
log1pexp x вычисляет log (1 + exp x), но обеспечивает более точные результаты, если это возможно.
Примеры:
- если
xявляется большим отрицательным числом,log (1 + exp x)будет неточным по причинам, указанным вlog1p. - если
exp xблизок к-1,log (1 + exp x)будет неточным по причинам, указанным вexpm1.
С версии: base-4.9.0.0
log1mexp x вычисляет log (1 - exp x), но обеспечивает более точные результаты, если это возможно.
Примеры:
- если
xявляется большим отрицательным числом,log (1 - exp x)будет неточным по причинам, указанным вlog1p. - если
exp xблизок к1,log (1 - exp x)будет неточным по причинам, указанным вexpm1.
С версии: base-4.9.0.0
Примеры реализации
| Floating Double | С момента: base-2.1 |
Определено в GHC.Float Методыpi :: Double Исходный код exp :: Double -> Double Исходный код log :: Double -> Double Исходный код sqrt :: Double -> Double Исходный код (**) :: Double -> Double -> Double Исходный код logBase :: Double -> Double -> Double Исходный код sin :: Double -> Double Исходный код cos :: Double -> Double Исходный код tan :: Double -> Double Исходный код asin :: Double -> Double Исходный код acos :: Double -> Double Исходный код atan :: Double -> Double Исходный код sinh :: Double -> Double Исходный код cosh :: Double -> Double Исходный код tanh :: Double -> Double Исходный код asinh :: Double -> Double Исходный код acosh :: Double -> Double Исходный код atanh :: Double -> Double Исходный код log1p :: Double -> Double Исходный код expm1 :: Double -> Double Исходный код log1pexp :: Double -> Double Исходный код log1mexp :: Double -> Double Исходный код | |
| Floating Float | С момента: base-2.1 |
Определено в GHC.Float Методыpi :: Float Исходный код exp :: Float -> Float Исходный код log :: Float -> Float Исходный код sqrt :: Float -> Float Исходный код (**) :: Float -> Float -> Float Исходный код logBase :: Float -> Float -> Float Исходный код sin :: Float -> Float Исходный код cos :: Float -> Float Исходный код tan :: Float -> Float Исходный код asin :: Float -> Float Исходный код acos :: Float -> Float Исходный код atan :: Float -> Float Исходный код sinh :: Float -> Float Исходный код cosh :: Float -> Float Исходный код tanh :: Float -> Float Исходный код asinh :: Float -> Float Исходный код acosh :: Float -> Float Исходный код atanh :: Float -> Float Исходный код log1p :: Float -> Float Исходный код expm1 :: Float -> Float Исходный код log1pexp :: Float -> Float Исходный код log1mexp :: Float -> Float Исходный код | |
| Floating CDouble | |
Определено в Foreign.C.Types Методыexp :: CDouble -> CDouble Исходный код log :: CDouble -> CDouble Исходный код sqrt :: CDouble -> CDouble Исходный код (**) :: CDouble -> CDouble -> CDouble Исходный код logBase :: CDouble -> CDouble -> CDouble Исходный код sin :: CDouble -> CDouble Исходный код cos :: CDouble -> CDouble Исходный код tan :: CDouble -> CDouble Исходный код asin :: CDouble -> CDouble Исходный код acos :: CDouble -> CDouble Исходный код atan :: CDouble -> CDouble Исходный код sinh :: CDouble -> CDouble Исходный код cosh :: CDouble -> CDouble Исходный код tanh :: CDouble -> CDouble Исходный код asinh :: CDouble -> CDouble Исходный код acosh :: CDouble -> CDouble Исходный код atanh :: CDouble -> CDouble Исходный код log1p :: CDouble -> CDouble Исходный код expm1 :: CDouble -> CDouble Исходный код log1pexp :: CDouble -> CDouble Исходный код log1mexp :: CDouble -> CDouble Исходный код | |
| Floating CFloat | |
Определено в Foreign.C.Types Краткое описание методовexp :: CFloat -> CFloat Source log :: CFloat -> CFloat Source sqrt :: CFloat -> CFloat Source (**) :: CFloat -> CFloat -> CFloat Source logBase :: CFloat -> CFloat -> CFloat Source sin :: CFloat -> CFloat Source cos :: CFloat -> CFloat Source tan :: CFloat -> CFloat Source asin :: CFloat -> CFloat Source acos :: CFloat -> CFloat Source atan :: CFloat -> CFloat Source sinh :: CFloat -> CFloat Source cosh :: CFloat -> CFloat Source tanh :: CFloat -> CFloat Source asinh :: CFloat -> CFloat Source acosh :: CFloat -> CFloat Source atanh :: CFloat -> CFloat Source log1p :: CFloat -> CFloat Source expm1 :: CFloat -> CFloat Source | |
| Floating a => Floating (Down a) | С версии: base-4.14.0.0 |
Определено в Data.Ord Методыpi :: Down a Исходный код exp :: Down a -> Down a Исходный код log :: Down a -> Down a Исходный код sqrt :: Down a -> Down a Исходный код (**) :: Down a -> Down a -> Down a Исходный код logBase :: Down a -> Down a -> Down a Исходный код sin :: Down a -> Down a Исходный код cos :: Down a -> Down a Исходный код tan :: Down a -> Down a Исходный код asin :: Down a -> Down a Исходный код acos :: Down a -> Down a Исходный код atan :: Down a -> Down a Исходный код sinh :: Down a -> Down a Исходный код cosh :: Down a -> Down a Исходный код tanh :: Down a -> Down a Исходный код asinh :: Down a -> Down a Исходный код acosh :: Down a -> Down a Исходный код atanh :: Down a -> Down a Исходный код log1p :: Down a -> Down a Исходный код expm1 :: Down a -> Down a Исходный код log1pexp :: Down a -> Down a Исходный код log1mexp :: Down a -> Down a Исходный код | |
| Floating a => Floating (Identity a) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Identity Краткое описание методовexp :: Identity a -> Identity a Source log :: Identity a -> Identity a Source sqrt :: Identity a -> Identity a Source (**) :: Identity a -> Identity a -> Identity a Source logBase :: Identity a -> Identity a -> Identity a Source sin :: Identity a -> Identity a Source cos :: Identity a -> Identity a Source tan :: Identity a -> Identity a Source asin :: Identity a -> Identity a Source acos :: Identity a -> Identity a Source atan :: Identity a -> Identity a Source sinh :: Identity a -> Identity a Source cosh :: Identity a -> Identity a Source tanh :: Identity a -> Identity a Source asinh :: Identity a -> Identity a Source acosh :: Identity a -> Identity a Source atanh :: Identity a -> Identity a Source log1p :: Identity a -> Identity a Source expm1 :: Identity a -> Identity a Source | |
| RealFloat a => Floating (Complex a) | С версии: base-2.1 |
Определено в Data.Functor.Contravariant Методыpi :: Op a b Исходный код exp :: Op a b -> Op a b Исходный код log :: Op a b -> Op a b Исходный код sqrt :: Op a b -> Op a b Исходный код (**) :: Op a b -> Op a b -> Op a b Исходный код logBase :: Op a b -> Op a b -> Op a b Исходный код sin :: Op a b -> Op a b Исходный код cos :: Op a b -> Op a b Исходный код tan :: Op a b -> Op a b Исходный код asin :: Op a b -> Op a b Исходный код acos :: Op a b -> Op a b Исходный код atan :: Op a b -> Op a b Исходный код sinh :: Op a b -> Op a b Исходный код cosh :: Op a b -> Op a b Исходный код tanh :: Op a b -> Op a b Исходный код asinh :: Op a b -> Op a b Исходный код acosh :: Op a b -> Op a b Исходный код atanh :: Op a b -> Op a b Исходный код log1p :: Op a b -> Op a b Исходный код expm1 :: Op a b -> Op a b Исходный код log1pexp :: Op a b -> Op a b Исходный код log1mexp :: Op a b -> Op a b Исходный код | |
| Floating a => Floating (Const a b) | С момента: base-4.9.0.0 |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Numeric.html