Copyright | © Anders Kaseorg 2013 |
---|---|
License | BSD-style |
Maintainer | Anders Kaseorg <andersk@mit.edu> |
Stability | experimental |
Portability | Non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell98 |
The finite nimbers, Nimber
, are a quadratically closed field of
characteristic 2 introduced in combinatorial game theory.
>>>
257 + 258 :: Nimber
*3>>>
sqrt 123456789 :: Nimber
*98433322>>>
123456789/sqrt 123456789 :: Nimber
*98433322
This implementation was inspired by Patrick Hurst’s slow Haskell implementation that this replaced (with his permission), and by Michel Van den Bergh’s Python implementation at https://web.archive.org/web/20101124110959/http://alpha.uhasselt.be/Research/Algebra/Members/nimbers/nimbers.py.
Synopsis
- data Nimber
- fromNimber :: Nimber -> Integer
- data NimberException
Documentation
The type of finite nimbers.
Instances
Enum Nimber Source # | |
Defined in Data.Nimber | |
Eq Nimber Source # | |
Floating Nimber Source # | This partial |
Fractional Nimber Source # | Note: Although nimbers support division, the |
Num Nimber Source # | |
Ord Nimber Source # | |
Read Nimber Source # | |
Show Nimber Source # | |
data NimberException Source #
The type of exceptions thrown by impossible Nimber
operations.
NegativeNimber | A negative integer was converted to a nimber. |
Innimerable String | A transcendental function was called on nimbers. |
Instances
Eq NimberException Source # | |
Defined in Data.Nimber (==) :: NimberException -> NimberException -> Bool # (/=) :: NimberException -> NimberException -> Bool # | |
Ord NimberException Source # | |
Defined in Data.Nimber compare :: NimberException -> NimberException -> Ordering # (<) :: NimberException -> NimberException -> Bool # (<=) :: NimberException -> NimberException -> Bool # (>) :: NimberException -> NimberException -> Bool # (>=) :: NimberException -> NimberException -> Bool # max :: NimberException -> NimberException -> NimberException # min :: NimberException -> NimberException -> NimberException # | |
Show NimberException Source # | |
Defined in Data.Nimber showsPrec :: Int -> NimberException -> ShowS # show :: NimberException -> String # showList :: [NimberException] -> ShowS # | |
Exception NimberException Source # | |
Defined in Data.Nimber |