| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Language.Fortran.Common.Array
Synopsis
- data Dim a = Dim {}
- data Dims t a
- = DimsExplicitShape (t (Dim a))
- | DimsAssumedSize (Maybe (t (Dim a))) a
- | DimsAssumedShape (t a)
- prettyIntersperse :: Foldable t => Doc -> t Doc -> Doc
- prettyAfter :: Foldable t => Doc -> t Doc -> Doc
Documentation
Instances
| Foldable Dim Source # | |
Defined in Language.Fortran.Common.Array Methods fold :: Monoid m => Dim m -> m # foldMap :: Monoid m => (a -> m) -> Dim a -> m # foldMap' :: Monoid m => (a -> m) -> Dim a -> m # foldr :: (a -> b -> b) -> b -> Dim a -> b # foldr' :: (a -> b -> b) -> b -> Dim a -> b # foldl :: (b -> a -> b) -> b -> Dim a -> b # foldl' :: (b -> a -> b) -> b -> Dim a -> b # foldr1 :: (a -> a -> a) -> Dim a -> a # foldl1 :: (a -> a -> a) -> Dim a -> a # elem :: Eq a => a -> Dim a -> Bool # maximum :: Ord a => Dim a -> a # | |
| Traversable Dim Source # | |
| Functor Dim Source # | |
| Out a => Out (Dim a) Source # | Fortran syntax uses |
| Data a => Data (Dim a) Source # | |
Defined in Language.Fortran.Common.Array Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dim a -> c (Dim a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dim a) # dataTypeOf :: Dim a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dim a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dim a)) # gmapT :: (forall b. Data b => b -> b) -> Dim a -> Dim a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dim a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dim a -> r # gmapQ :: (forall d. Data d => d -> u) -> Dim a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Dim a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dim a -> m (Dim a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dim a -> m (Dim a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dim a -> m (Dim a) # | |
| Generic (Dim a) Source # | |
| Show a => Show (Dim a) Source # | |
| Binary a => Binary (Dim a) Source # | |
| NFData a => NFData (Dim a) Source # | |
Defined in Language.Fortran.Common.Array | |
| Out (Dim a) => Pretty (Dim a) Source # | |
Defined in Language.Fortran.Common.Array | |
| Eq a => Eq (Dim a) Source # | |
| Ord a => Ord (Dim a) Source # | |
| type Rep (Dim a) Source # | |
Defined in Language.Fortran.Common.Array type Rep (Dim a) = D1 ('MetaData "Dim" "Language.Fortran.Common.Array" "fortran-src-0.14.0-inplace" 'False) (C1 ('MetaCons "Dim" 'PrefixI 'True) (S1 ('MetaSel ('Just "dimLower") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "dimUpper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |
Evaluated dimensions of a Fortran array.
A known-length dimension is defined by a lower bound and an upper bound. This data type takes a syntactic view, rather than normalizing lower bound to 0 and passing just dimension extents.
You select the list type t (which should be Functor, Foldable and
Traversable) and the numeric index type a (e.g. Int).
Note that using a non-empty list type such as NonEmpty
will disallow representing zero-dimension arrays, which may be useful for
soundness.
Note the following excerpt from the F2018 standard (8.5.8.2 Explicit-shape array):
If the upper bound is less than the lower bound, the range is empty, the extent in that dimension is zero, and the array is of zero size.
Constructors
| DimsExplicitShape (t (Dim a)) | list of all dimensions |
| DimsAssumedSize | |
| DimsAssumedShape | Assumed-shape array dimensions. Here, we only have the lower bound for each dimension, and the rank (via length). |
Fields
| |
Instances
| Foldable t => Foldable (Dims t) Source # | |
Defined in Language.Fortran.Common.Array Methods fold :: Monoid m => Dims t m -> m # foldMap :: Monoid m => (a -> m) -> Dims t a -> m # foldMap' :: Monoid m => (a -> m) -> Dims t a -> m # foldr :: (a -> b -> b) -> b -> Dims t a -> b # foldr' :: (a -> b -> b) -> b -> Dims t a -> b # foldl :: (b -> a -> b) -> b -> Dims t a -> b # foldl' :: (b -> a -> b) -> b -> Dims t a -> b # foldr1 :: (a -> a -> a) -> Dims t a -> a # foldl1 :: (a -> a -> a) -> Dims t a -> a # elem :: Eq a => a -> Dims t a -> Bool # maximum :: Ord a => Dims t a -> a # minimum :: Ord a => Dims t a -> a # | |
| Traversable t => Traversable (Dims t) Source # | |
| Functor t => Functor (Dims t) Source # | |
| (Foldable t, Functor t, Out (Dim a), Out a) => Out (Dims t a) Source # | |
| (Data a, Data (t a), Data (t (Dim a)), Typeable t) => Data (Dims t a) Source # | |
Defined in Language.Fortran.Common.Array Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dims t a -> c (Dims t a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dims t a) # toConstr :: Dims t a -> Constr # dataTypeOf :: Dims t a -> DataType # dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Dims t a)) # dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Dims t a)) # gmapT :: (forall b. Data b => b -> b) -> Dims t a -> Dims t a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dims t a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dims t a -> r # gmapQ :: (forall d. Data d => d -> u) -> Dims t a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Dims t a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dims t a -> m (Dims t a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dims t a -> m (Dims t a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dims t a -> m (Dims t a) # | |
| Generic (Dims t a) Source # | |
| (Show a, Show (t a), Show (t (Dim a))) => Show (Dims t a) Source # | |
| (Binary a, Binary (t a), Binary (t (Dim a))) => Binary (Dims t a) Source # | |
| (NFData a, NFData (t a), NFData (t (Dim a))) => NFData (Dims t a) Source # | |
Defined in Language.Fortran.Common.Array | |
| Out (Dims t a) => Pretty (Dims t a) Source # | |
Defined in Language.Fortran.Common.Array | |
| (Eq a, Eq (t a), Eq (t (Dim a))) => Eq (Dims t a) Source # | |
| (Ord a, Ord (t a), Ord (t (Dim a))) => Ord (Dims t a) Source # | This instance is purely for convenience. No definition of ordering is provided, and the implementation may change at any time. |
Defined in Language.Fortran.Common.Array | |
| type Rep (Dims t a) Source # | |
Defined in Language.Fortran.Common.Array type Rep (Dims t a) = D1 ('MetaData "Dims" "Language.Fortran.Common.Array" "fortran-src-0.14.0-inplace" 'False) (C1 ('MetaCons "DimsExplicitShape" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (t (Dim a)))) :+: (C1 ('MetaCons "DimsAssumedSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (t (Dim a)))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "DimsAssumedShape" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (t a))))) | |