oalg-base-3.0.0.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellNone
LanguageHaskell2010

OAlg.Entity.Sequence.FSequence

Description

Total sequences according to a index with finite support, i.e only finite many values are not equal to the default value.

The implementation is optimized for:

  • retrieving the values by an index.
  • values which may have a very time consuming evaluation.
Synopsis

FSequence

data FSequence (s :: Behavior) d i x Source #

total sequence according to the index i with finite support, i.e only finite many values are not equal to the default value according to a given index.

It comes with to flavors which defines the behavior of creating the sequence via make:

Strict: eliminates all default values from the form to create the sequence. In this case for example the testing of equality is efficient.

Lazy: takes all the values form the form to create the sequence. In this case for example the testing of equality is less efficient.

Both flavors have equal forms.

Instances

Instances details
Foldable (FSequence s d i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

fold :: Monoid m => FSequence s d i m -> m #

foldMap :: Monoid m => (a -> m) -> FSequence s d i a -> m #

foldMap' :: Monoid m => (a -> m) -> FSequence s d i a -> m #

foldr :: (a -> b -> b) -> b -> FSequence s d i a -> b #

foldr' :: (a -> b -> b) -> b -> FSequence s d i a -> b #

foldl :: (b -> a -> b) -> b -> FSequence s d i a -> b #

foldl' :: (b -> a -> b) -> b -> FSequence s d i a -> b #

foldr1 :: (a -> a -> a) -> FSequence s d i a -> a #

foldl1 :: (a -> a -> a) -> FSequence s d i a -> a #

toList :: FSequence s d i a -> [a] #

null :: FSequence s d i a -> Bool #

length :: FSequence s d i a -> Int #

elem :: Eq a => a -> FSequence s d i a -> Bool #

maximum :: Ord a => FSequence s d i a -> a #

minimum :: Ord a => FSequence s d i a -> a #

sum :: Num a => FSequence s d i a -> a #

product :: Num a => FSequence s d i a -> a #

(DefaultValue d i x, Eq x, Show d, Show i, Show x) => Show (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

showsPrec :: Int -> FSequence s d i x -> ShowS #

show :: FSequence s d i x -> String #

showList :: [FSequence s d i x] -> ShowS #

(DefaultValue d i x, Eq d, Eq i, Eq x) => Eq (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

(==) :: FSequence s d i x -> FSequence s d i x -> Bool #

(/=) :: FSequence s d i x -> FSequence s d i x -> Bool #

(DefaultValue d i x, Ord d, Ord i, Ord x) => Ord (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

compare :: FSequence s d i x -> FSequence s d i x -> Ordering #

(<) :: FSequence s d i x -> FSequence s d i x -> Bool #

(<=) :: FSequence s d i x -> FSequence s d i x -> Bool #

(>) :: FSequence s d i x -> FSequence s d i x -> Bool #

(>=) :: FSequence s d i x -> FSequence s d i x -> Bool #

max :: FSequence s d i x -> FSequence s d i x -> FSequence s d i x #

min :: FSequence s d i x -> FSequence s d i x -> FSequence s d i x #

(DefaultValue d i x, Eq x) => Constructable (FSequence 'Lazy d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

make :: Form (FSequence 'Lazy d i x) -> FSequence 'Lazy d i x Source #

(DefaultValue d i x, Eq x) => Constructable (FSequence 'Strict d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

make :: Form (FSequence 'Strict d i x) -> FSequence 'Strict d i x Source #

(DefaultValue d i x, Eq x) => Exposable (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Associated Types

type Form (FSequence s d i x) 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Form (FSequence s d i x) = FSequenceForm d i x

Methods

form :: FSequence s d i x -> Form (FSequence s d i x) Source #

(Entity d, Entity i, Entity x, Ord i) => Validable (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

valid :: FSequence s d i x -> Statement Source #

(DefaultValue d i x, Entity d, Entity i, Entity x, Ord i, Typeable s) => Fibred (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

root :: FSequence s d i x -> Root (FSequence s d i x) Source #

Eq d => EqRoot (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Show d => ShowRoot (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Typeable d => TypeableRoot (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Validable d => ValidableRoot (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Form (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Form (FSequence s d i x) = FSequenceForm d i x
type Root (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Root (FSequence s d i x) = d

fsqIsEmpty :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x) => FSequence s d i x -> Bool Source #

testing the first entry of being empty.

fsqxs :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x) => FSequence s d i x -> [(x, i)] Source #

the underlying list of non-default, indexed values,

fsqx :: forall d i x (s :: Behavior). (DefaultValue d i x, Ord i) => FSequence s d i x -> i -> x Source #

retrieving a value according to a given index.

fsqSpan :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x, Ord i) => FSequence s d i x -> Span i Source #

the support, i.e the minimal and the maximal index of the FSequence.

fsqMin :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x, Ord i) => FSequence s d i x -> Closure i Source #

the minimal index.

fsqMax :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x, Ord i) => FSequence s d i x -> Closure i Source #

the maxiaml index.

fsqD :: forall (s :: Behavior) d i x. FSequence s d i x -> d Source #

the underlying definition.

fsqForm :: forall d i x (s :: Behavior). (DefaultValue d i x, Eq x) => FSequence s d i x -> FSequenceForm d i x Source #

the underlying form.

fsqMakeStrict :: (DefaultValue d i x, Eq x) => FSequenceForm d i x -> FSequence 'Strict d i x Source #

makes a FSequence with a strict behavior.

fsqMakeLazy :: FSequenceForm d i x -> FSequence 'Lazy d i x Source #

makes a FSequence with a lazy behavior.

fsqMap :: forall d i y x (s :: Behavior). (DefaultValue d i y, Eq y) => (x -> y) -> FSequence s d i x -> FSequence s d i y Source #

maps a sequence according to the given mappings.

fsqMapShift :: forall e i y d x (s :: Behavior). (DefaultValue e i y, Eq y, Number i) => (d -> e) -> i -> ((x, i) -> y) -> FSequence s d i x -> FSequence s e i y Source #

maps a sequence according to the given mappings.

fsqMapWithIndex :: forall e j y d i x (s :: Behavior). (DefaultValue e j y, Eq y) => (d -> e) -> Monotone i j -> ((x, i) -> y) -> FSequence s d i x -> FSequence s e j y Source #

maps a sequence according to the given mappings.

fsqMapWithIndexStrict :: (DefaultValue e j y, Eq y) => (d -> e) -> Monotone i j -> ((x, i) -> y) -> FSequence 'Strict d i x -> FSequence 'Strict e j y Source #

maps a sequence according to the given mappings.

fsqMapWithIndexLazy :: (d -> e) -> Monotone i j -> ((x, i) -> y) -> FSequence 'Lazy d i x -> FSequence 'Lazy e j y Source #

maps a sequence according to the given mappings.

fsqFilter :: forall x (s :: Behavior) d i. (x -> Bool) -> FSequence s d i x -> FSequence s d i x Source #

the sub sequence all values satisfying the given predicate.

Form

data FSequenceForm d i x Source #

form for total sequences with finite support.

Constructors

FSequenceForm d (PSequence i x) 

Instances

Instances details
(Show d, Show x, Show i) => Show (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

showsPrec :: Int -> FSequenceForm d i x -> ShowS #

show :: FSequenceForm d i x -> String #

showList :: [FSequenceForm d i x] -> ShowS #

(Eq d, Eq x, Eq i) => Eq (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

(==) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

(/=) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

(Ord d, Ord x, Ord i) => Ord (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

compare :: FSequenceForm d i x -> FSequenceForm d i x -> Ordering #

(<) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

(<=) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

(>) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

(>=) :: FSequenceForm d i x -> FSequenceForm d i x -> Bool #

max :: FSequenceForm d i x -> FSequenceForm d i x -> FSequenceForm d i x #

min :: FSequenceForm d i x -> FSequenceForm d i x -> FSequenceForm d i x #

(Validable d, Entity i, Ord i, Entity x) => Validable (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

valid :: FSequenceForm d i x -> Statement Source #

(Entity d, Entity i, Ord i, Entity x) => Fibred (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

root :: FSequenceForm d i x -> Root (FSequenceForm d i x) Source #

Eq d => EqRoot (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Show d => ShowRoot (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Typeable d => TypeableRoot (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Validable d => ValidableRoot (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Root (FSequenceForm d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Root (FSequenceForm d i x) = d

rdcFSequenceForm :: (DefaultValue d i x, Eq x) => FSequenceForm d i x -> FSequenceForm d i x Source #

reducing a sequence form, i.e. eliminates all default values according to the given index.

Default Value

class DefaultValue d i x where Source #

defining a default for every index.

Methods

defaultValue :: d -> i -> x Source #

isDefaultValue :: (DefaultValue d i x, Eq x) => d -> (x, i) -> Bool Source #

test for being the default value according to the given index.

Proposition

relHomogenRoot :: forall d i x (s :: Behavior). (DefaultValue d i x, Fibred x, Show i) => FSequence s d i x -> Statement Source #

relation for validating a FSequence such that the root of every element of the sequence is equal to the root of the default value according to the index.

prpFSequenceSpan :: N -> Statement Source #

support of the two flavors are equal.