module Biobase.Types.Evalue where
import Control.DeepSeq
import Control.Lens
import Data.Aeson
import Data.Binary
import Data.Default
import Data.Hashable (Hashable)
import Data.Primitive.Types
import Data.Serialize
import Data.Vector.Unboxed.Base
import Data.Vector.Unboxed.Deriving
import GHC.Generics (Generic)
import qualified Data.Vector.Generic as VG
import qualified Data.Vector.Generic.Mutable as VGM
import qualified Data.Vector.Unboxed as VU
import Numeric.Limits
newtype Evalue = Evalue { Evalue -> Double
getEvalue :: Double }
deriving (Evalue -> Evalue -> Bool
(Evalue -> Evalue -> Bool)
-> (Evalue -> Evalue -> Bool) -> Eq Evalue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Evalue -> Evalue -> Bool
$c/= :: Evalue -> Evalue -> Bool
== :: Evalue -> Evalue -> Bool
$c== :: Evalue -> Evalue -> Bool
Eq,Eq Evalue
Eq Evalue
-> (Evalue -> Evalue -> Ordering)
-> (Evalue -> Evalue -> Bool)
-> (Evalue -> Evalue -> Bool)
-> (Evalue -> Evalue -> Bool)
-> (Evalue -> Evalue -> Bool)
-> (Evalue -> Evalue -> Evalue)
-> (Evalue -> Evalue -> Evalue)
-> Ord Evalue
Evalue -> Evalue -> Bool
Evalue -> Evalue -> Ordering
Evalue -> Evalue -> Evalue
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Evalue -> Evalue -> Evalue
$cmin :: Evalue -> Evalue -> Evalue
max :: Evalue -> Evalue -> Evalue
$cmax :: Evalue -> Evalue -> Evalue
>= :: Evalue -> Evalue -> Bool
$c>= :: Evalue -> Evalue -> Bool
> :: Evalue -> Evalue -> Bool
$c> :: Evalue -> Evalue -> Bool
<= :: Evalue -> Evalue -> Bool
$c<= :: Evalue -> Evalue -> Bool
< :: Evalue -> Evalue -> Bool
$c< :: Evalue -> Evalue -> Bool
compare :: Evalue -> Evalue -> Ordering
$ccompare :: Evalue -> Evalue -> Ordering
$cp1Ord :: Eq Evalue
Ord,ReadPrec [Evalue]
ReadPrec Evalue
Int -> ReadS Evalue
ReadS [Evalue]
(Int -> ReadS Evalue)
-> ReadS [Evalue]
-> ReadPrec Evalue
-> ReadPrec [Evalue]
-> Read Evalue
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Evalue]
$creadListPrec :: ReadPrec [Evalue]
readPrec :: ReadPrec Evalue
$creadPrec :: ReadPrec Evalue
readList :: ReadS [Evalue]
$creadList :: ReadS [Evalue]
readsPrec :: Int -> ReadS Evalue
$creadsPrec :: Int -> ReadS Evalue
Read,Int -> Evalue -> ShowS
[Evalue] -> ShowS
Evalue -> String
(Int -> Evalue -> ShowS)
-> (Evalue -> String) -> ([Evalue] -> ShowS) -> Show Evalue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Evalue] -> ShowS
$cshowList :: [Evalue] -> ShowS
show :: Evalue -> String
$cshow :: Evalue -> String
showsPrec :: Int -> Evalue -> ShowS
$cshowsPrec :: Int -> Evalue -> ShowS
Show,Integer -> Evalue
Evalue -> Evalue
Evalue -> Evalue -> Evalue
(Evalue -> Evalue -> Evalue)
-> (Evalue -> Evalue -> Evalue)
-> (Evalue -> Evalue -> Evalue)
-> (Evalue -> Evalue)
-> (Evalue -> Evalue)
-> (Evalue -> Evalue)
-> (Integer -> Evalue)
-> Num Evalue
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> Evalue
$cfromInteger :: Integer -> Evalue
signum :: Evalue -> Evalue
$csignum :: Evalue -> Evalue
abs :: Evalue -> Evalue
$cabs :: Evalue -> Evalue
negate :: Evalue -> Evalue
$cnegate :: Evalue -> Evalue
* :: Evalue -> Evalue -> Evalue
$c* :: Evalue -> Evalue -> Evalue
- :: Evalue -> Evalue -> Evalue
$c- :: Evalue -> Evalue -> Evalue
+ :: Evalue -> Evalue -> Evalue
$c+ :: Evalue -> Evalue -> Evalue
Num,(forall x. Evalue -> Rep Evalue x)
-> (forall x. Rep Evalue x -> Evalue) -> Generic Evalue
forall x. Rep Evalue x -> Evalue
forall x. Evalue -> Rep Evalue x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Evalue x -> Evalue
$cfrom :: forall x. Evalue -> Rep Evalue x
Generic)
makeWrapped ''Evalue
instance Binary Evalue
instance FromJSON Evalue
instance Hashable Evalue
instance Serialize Evalue
instance ToJSON Evalue
instance NFData Evalue
derivingUnbox "Evalue"
[t| Evalue -> Double |] [| getEvalue |] [| Evalue |]
instance Default Evalue where
def :: Evalue
def = Double -> Evalue
Evalue Double
0
{-# Inline def #-}
instance NumericLimits Evalue where
maxFinite :: Evalue
maxFinite = Double -> Evalue
Evalue Double
forall x. NumericLimits x => x
maxFinite
minFinite :: Evalue
minFinite = Double -> Evalue
Evalue Double
0
{-# Inline maxFinite #-}
{-# Inline minFinite #-}