Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Machine Fortran INTEGER values.
This module stores Fortran INTEGER values in a matching Haskell machine integer
type. For example, an INT(4)
would be stored in an Int32
. This way, we get
both efficient operations and common overflow behaviour (which hopefully matches
most Fortran compilers), and explicitly encode kinding semantics via promoting
integral types.
Synopsis
- data FInt
- withFInt :: Num a => FInt -> a
- fIntUOp' :: (Int8 -> r) -> (Int16 -> r) -> (Int32 -> r) -> (Int64 -> r) -> FInt -> r
- fIntBOp' :: (Int8 -> Int8 -> r) -> (Int16 -> Int16 -> r) -> (Int32 -> Int32 -> r) -> (Int64 -> Int64 -> r) -> FInt -> FInt -> r
- fIntUOpInplace' :: (Int8 -> Int8) -> (Int16 -> Int16) -> (Int32 -> Int32) -> (Int64 -> Int64) -> FInt -> FInt
- fIntBOpInplace' :: (Int8 -> Int8 -> Int8) -> (Int16 -> Int16 -> Int16) -> (Int32 -> Int32 -> Int32) -> (Int64 -> Int64 -> Int64) -> FInt -> FInt -> FInt
- fIntUOp :: (forall a. FKindedC FInt a => a -> r) -> FInt -> r
- fIntUOpInplace :: (forall a. FKindedC FInt a => a -> a) -> FInt -> FInt
- fIntBOp :: (forall a. FKindedC FInt a => a -> a -> r) -> FInt -> FInt -> r
- fIntBOpInplace :: (forall a. FKindedC FInt a => a -> a -> a) -> FInt -> FInt -> FInt
Documentation
A Fortran integer value, type INTEGER(k)
.
Instances
Out FInt Source # | |
Data FInt Source # | |
Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FInt -> c FInt # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FInt # dataTypeOf :: FInt -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FInt) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FInt) # gmapT :: (forall b. Data b => b -> b) -> FInt -> FInt # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FInt -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FInt -> r # gmapQ :: (forall d. Data d => d -> u) -> FInt -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FInt -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FInt -> m FInt # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FInt -> m FInt # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FInt -> m FInt # | |
Generic FInt Source # | |
Show FInt Source # | |
Binary FInt Source # | |
FKinded FInt Source # | |
Eq FInt Source # | |
type Rep FInt Source # | |
Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine type Rep FInt = D1 ('MetaData "FInt" "Language.Fortran.Repr.Value.Scalar.Int.Machine" "fortran-src-0.14.0-inplace" 'False) ((C1 ('MetaCons "FInt1" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int8)) :+: C1 ('MetaCons "FInt2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int16))) :+: (C1 ('MetaCons "FInt4" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int32)) :+: C1 ('MetaCons "FInt8" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int64)))) | |
type FKindedT FInt Source # | |
type FKindedC FInt a Source # | |
fIntBOp' :: (Int8 -> Int8 -> r) -> (Int16 -> Int16 -> r) -> (Int32 -> Int32 -> r) -> (Int64 -> Int64 -> r) -> FInt -> FInt -> r Source #
fIntUOpInplace' :: (Int8 -> Int8) -> (Int16 -> Int16) -> (Int32 -> Int32) -> (Int64 -> Int64) -> FInt -> FInt Source #