cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe-Inferred
LanguageHaskell2010

Math.Number.StreamInterface

Synopsis

Documentation

class (Monad str, StreamBuilder str, StreamObserver str) => Limiting str a where Source #

Idea: limit produces an exact value from a monotone sequence of approximations

https://ncatlab.org/nlab/show/closure+operator

The Closure represents a sequentially closed set of elements

Associated Types

data Closure str a Source #

Methods

limit :: str a -> Closure str a Source #

approximations :: Closure str a -> str a Source #

Instances

Instances details
Limiting Stream Rational Source #

https://en.wikipedia.org/wiki/Matrix_exponential

Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Rational Source #

Limiting Stream R Source # 
Instance details

Defined in Math.Number.R

Associated Types

data Closure Stream R Source #

Limiting Stream R Source #

The following instance declaration represents the completeness of the real number system.

Instance details

Defined in Math.Number.Real

Associated Types

data Closure Stream R Source #

Limiting Stream Integer Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Integer Source #

Limiting Stream Double Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Double Source #

Limiting Stream Float Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Float Source #

(Monad str, StreamObserver str, StreamBuilder str) => Limiting str Bool Source # 
Instance details

Defined in Math.Number.Real

Associated Types

data Closure str Bool Source #

Methods

limit :: str Bool -> Closure str Bool Source #

approximations :: Closure str Bool -> str Bool Source #

(Show r, Limiting Stream r) => Limiting Stream (Quantity r) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Associated Types

data Closure Stream (Quantity r) Source #

(Num a, Limiting Stream a) => Limiting Stream (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (Stream a) Source #

Limiting Stream (IO ()) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (IO ()) Source #

Methods

limit :: Stream (IO ()) -> Closure Stream (IO ()) Source #

approximations :: Closure Stream (IO ()) -> Stream (IO ()) Source #

Limiting str a => Limiting str (Complex a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure str (Complex a) Source #

Methods

limit :: str (Complex a) -> Closure str (Complex a) Source #

approximations :: Closure str (Complex a) -> str (Complex a) Source #

Limiting str a => Limiting str (Vector1 a) Source # 
Instance details

Defined in Math.Matrix.Vector1

Associated Types

data Closure str (Vector1 a) Source #

Methods

limit :: str (Vector1 a) -> Closure str (Vector1 a) Source #

approximations :: Closure str (Vector1 a) -> str (Vector1 a) Source #

(Limiting str a, Monad str) => Limiting str (Vector2 a) Source # 
Instance details

Defined in Math.Matrix.Vector2

Associated Types

data Closure str (Vector2 a) Source #

Methods

limit :: str (Vector2 a) -> Closure str (Vector2 a) Source #

approximations :: Closure str (Vector2 a) -> str (Vector2 a) Source #

(Monad str, Limiting str a) => Limiting str (Vector3 a) Source # 
Instance details

Defined in Math.Matrix.Vector3

Associated Types

data Closure str (Vector3 a) Source #

Methods

limit :: str (Vector3 a) -> Closure str (Vector3 a) Source #

approximations :: Closure str (Vector3 a) -> str (Vector3 a) Source #

(Monad str, Limiting str a) => Limiting str (Vector4 a) Source # 
Instance details

Defined in Math.Matrix.Vector4

Associated Types

data Closure str (Vector4 a) Source #

Methods

limit :: str (Vector4 a) -> Closure str (Vector4 a) Source #

approximations :: Closure str (Vector4 a) -> str (Vector4 a) Source #

Limiting Stream (a :==: a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (a :==: a) Source #

(Limiting str a, Limiting str b) => Limiting str (a, b) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure str (a, b) Source #

Methods

limit :: str (a, b) -> Closure str (a, b) Source #

approximations :: Closure str (a, b) -> str (a, b) Source #

Monad m => Limiting Stream (Kleisli m a a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (Kleisli m a a) Source #

(Limiting str a, Limiting str b, Limiting str c) => Limiting str (a, b, c) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure str (a, b, c) Source #

Methods

limit :: str (a, b, c) -> Closure str (a, b, c) Source #

approximations :: Closure str (a, b, c) -> str (a, b, c) Source #

(Applicative f, Traversable f, Traversable str, Applicative g, Traversable g, Limiting str a) => Limiting str ((f :*: g) a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure str ((f :*: g) a) Source #

Methods

limit :: str ((f :*: g) a) -> Closure str ((f :*: g) a) Source #

approximations :: Closure str ((f :*: g) a) -> str ((f :*: g) a) Source #

class (Fractional a, Limiting str a) => Infinitesimal str a where Source #

Minimal complete definition

(epsilon_closure | epsilon_stream)

Instances

Instances details
Infinitesimal Stream Rational Source # 
Instance details

Defined in Math.Number.Real

Infinitesimal Stream R Source # 
Instance details

Defined in Math.Number.R

Infinitesimal Stream R Source #

epsilon is a real that converges to zero.

Instance details

Defined in Math.Number.Real

Infinitesimal Stream Double Source #

Notice that after double precision is not sufficient, the infinitesimals are zero.

Instance details

Defined in Math.Number.Stream

Infinitesimal Stream Float Source #

Notice that after float precision is not sufficient, the infinitesimals are zero.

Instance details

Defined in Math.Number.Stream

(Show r, Infinitesimal Stream r) => Infinitesimal Stream (Quantity r) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Infinitesimal Stream a, Num a) => Infinitesimal Stream (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

(RealFloat a, Infinitesimal str a) => Infinitesimal str (Complex a) Source # 
Instance details

Defined in Math.Number.Stream

Infinitesimal str a => Infinitesimal str (Vector1 a) Source # 
Instance details

Defined in Math.Matrix.Vector1

class Applicative str => StreamBuilder str where Source #

Methods

pre :: a -> str a -> str a infixr 5 Source #

Instances

Instances details
StreamBuilder Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

pre :: a -> Stream a -> Stream a Source #

class Applicative str => StreamObserver str where Source #

Methods

shead :: str a -> a Source #

stail :: str a -> str a Source #

Instances

Instances details
StreamObserver Stream Source # 
Instance details

Defined in Math.Number.StreamInterface

Methods

shead :: Stream a -> a Source #

stail :: Stream a -> Stream a Source #

data Stream a Source #

Data structure of infinite lazy streams.

Constructors

Pre infixr 5 

Fields

Instances

Instances details
MonadFail Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

fail :: String -> Stream a #

Foldable Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

fold :: Monoid m => Stream m -> m #

foldMap :: Monoid m => (a -> m) -> Stream a -> m #

foldMap' :: Monoid m => (a -> m) -> Stream a -> m #

foldr :: (a -> b -> b) -> b -> Stream a -> b #

foldr' :: (a -> b -> b) -> b -> Stream a -> b #

foldl :: (b -> a -> b) -> b -> Stream a -> b #

foldl' :: (b -> a -> b) -> b -> Stream a -> b #

foldr1 :: (a -> a -> a) -> Stream a -> a #

foldl1 :: (a -> a -> a) -> Stream a -> a #

toList :: Stream a -> [a] #

null :: Stream a -> Bool #

length :: Stream a -> Int #

elem :: Eq a => a -> Stream a -> Bool #

maximum :: Ord a => Stream a -> a #

minimum :: Ord a => Stream a -> a #

sum :: Num a => Stream a -> a #

product :: Num a => Stream a -> a #

Traversable Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

traverse :: Applicative f => (a -> f b) -> Stream a -> f (Stream b) #

sequenceA :: Applicative f => Stream (f a) -> f (Stream a) #

mapM :: Monad m => (a -> m b) -> Stream a -> m (Stream b) #

sequence :: Monad m => Stream (m a) -> m (Stream a) #

Applicative Stream Source # 
Instance details

Defined in Math.Number.StreamInterface

Methods

pure :: a -> Stream a #

(<*>) :: Stream (a -> b) -> Stream a -> Stream b #

liftA2 :: (a -> b -> c) -> Stream a -> Stream b -> Stream c #

(*>) :: Stream a -> Stream b -> Stream b #

(<*) :: Stream a -> Stream b -> Stream a #

Functor Stream Source # 
Instance details

Defined in Math.Number.StreamInterface

Methods

fmap :: (a -> b) -> Stream a -> Stream b #

(<$) :: a -> Stream b -> Stream a #

Monad Stream Source #

According to http://patternsinfp.wordpress.com/2010/12/31/stream-monad/, the diagonal is the join of the stream monad.

Instance details

Defined in Math.Number.Stream

Methods

(>>=) :: Stream a -> (a -> Stream b) -> Stream b #

(>>) :: Stream a -> Stream b -> Stream b #

return :: a -> Stream a #

StreamBuilder Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

pre :: a -> Stream a -> Stream a Source #

StreamObserver Stream Source # 
Instance details

Defined in Math.Number.StreamInterface

Methods

shead :: Stream a -> a Source #

stail :: Stream a -> Stream a Source #

CircularComonad Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

rotate :: Stream a -> Stream a Source #

Comonad Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

extract :: Stream a -> a Source #

duplicate :: Stream a -> Stream (Stream a) Source #

extend :: (Stream a -> b) -> Stream a -> Stream b Source #

(=>>) :: Stream a -> (Stream a -> b) -> Stream b Source #

(.>>) :: Stream a -> b -> Stream b Source #

InfiniteComonad Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

comonad_pre :: a -> Stream a -> Stream a Source #

InterleaveFunctor Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

interleave :: Stream a -> Stream a -> Stream a Source #

Nondeterministic Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

guess :: [a] -> Stream a Source #

PpShowF Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

ppf :: PpShow a => Stream a -> Doc Source #

PpShowVerticalF Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

ppf_vertical :: PpShow a => Stream a -> Doc Source #

AppendableVector Vector2 Stream Source # 
Instance details

Defined in Math.Matrix.VectorConversions

Associated Types

type Vector2 :+: Stream :: Type -> Type Source #

Methods

(||>>) :: Vector2 a -> Stream a -> (Vector2 :+: Stream) a Source #

AppendableVector Vector3 Stream Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

type Vector3 :+: Stream :: Type -> Type Source #

Methods

(||>>) :: Vector3 a -> Stream a -> (Vector3 :+: Stream) a Source #

Num a => CodiagonalMatrix Stream a Source # 
Instance details

Defined in Math.Number.StreamInterface

Associated Types

data Codiagonal Stream a Source #

type Stream \\ a Source #

Num a => Diagonalizable Stream a Source #

square matrix implementation for streams.

Instance details

Defined in Math.Number.Stream

Num a => Indexable Stream a Source # 
Instance details

Defined in Math.Number.Stream

Approximations Stream R Source # 
Instance details

Defined in Math.Number.R

Approximations Stream R Source # 
Instance details

Defined in Math.Number.Real

Approximations Stream Double Source # 
Instance details

Defined in Math.Number.Stream

Approximations Stream Float Source # 
Instance details

Defined in Math.Number.Stream

Infinitesimal Stream Rational Source # 
Instance details

Defined in Math.Number.Real

Infinitesimal Stream R Source # 
Instance details

Defined in Math.Number.R

Infinitesimal Stream R Source #

epsilon is a real that converges to zero.

Instance details

Defined in Math.Number.Real

Infinitesimal Stream Double Source #

Notice that after double precision is not sufficient, the infinitesimals are zero.

Instance details

Defined in Math.Number.Stream

Infinitesimal Stream Float Source #

Notice that after float precision is not sufficient, the infinitesimals are zero.

Instance details

Defined in Math.Number.Stream

Limiting Stream Rational Source #

https://en.wikipedia.org/wiki/Matrix_exponential

Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Rational Source #

Limiting Stream R Source # 
Instance details

Defined in Math.Number.R

Associated Types

data Closure Stream R Source #

Limiting Stream R Source #

The following instance declaration represents the completeness of the real number system.

Instance details

Defined in Math.Number.Real

Associated Types

data Closure Stream R Source #

Limiting Stream Integer Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Integer Source #

Limiting Stream Double Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Double Source #

Limiting Stream Float Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream Float Source #

Adjunction StreamIndex Stream Source # 
Instance details

Defined in Math.Number.Stream

Methods

leftAdjunct :: (StreamIndex a -> b) -> a -> Stream b Source #

unit :: a -> Stream (StreamIndex a) Source #

rightAdjunct :: (a -> Stream b) -> StreamIndex a -> b Source #

counit :: StreamIndex (Stream b) -> b Source #

(Closed a, ConjugateSymmetric a, Num a) => LinearTransform Stream Stream a Source # 
Instance details

Defined in Math.Number.Stream

Methods

(<*>>) :: Stream a -> (Stream :*: Stream) a -> Stream a Source #

(<<*>) :: (Stream :*: Stream) a -> Stream a -> Stream a Source #

Transposable Stream Vector1 a Source # 
Instance details

Defined in Math.Matrix.Vector1

Transposable Stream Vector2 a Source # 
Instance details

Defined in Math.Matrix.Vector2

Transposable Stream Vector3 a Source # 
Instance details

Defined in Math.Matrix.Vector3

Transposable Stream Vector4 a Source # 
Instance details

Defined in Math.Matrix.Vector4

Num a => Transposable Stream Stream a Source # 
Instance details

Defined in Math.Number.StreamInterface

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Vector1 Stream (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Vector2 Stream (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Vector3 Stream (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Vector4 Stream (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Stream Vector1 (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Stream Vector2 (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Stream Vector3 (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Stream Vector4 (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Num a, ConjugateSymmetric a, Diagonalizable Stream a, InnerProductSpace (Stream a)) => Linearizable LinearMap ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Stream Stream (a :: Type) Source # 
Instance details

Defined in Math.Matrix.Linear

(Show r, Infinitesimal Stream r) => Infinitesimal Stream (Quantity r) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Infinitesimal Stream a, Num a) => Infinitesimal Stream (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

(Show r, Limiting Stream r) => Limiting Stream (Quantity r) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Associated Types

data Closure Stream (Quantity r) Source #

(Num a, Limiting Stream a) => Limiting Stream (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (Stream a) Source #

Limiting Stream (IO ()) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (IO ()) Source #

Methods

limit :: Stream (IO ()) -> Closure Stream (IO ()) Source #

approximations :: Closure Stream (IO ()) -> Stream (IO ()) Source #

Limiting Stream (a :==: a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (a :==: a) Source #

Monad m => Limiting Stream (Kleisli m a a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

data Closure Stream (Kleisli m a a) Source #

Data a => Data (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Stream a -> c (Stream a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Stream a) #

toConstr :: Stream a -> Constr #

dataTypeOf :: Stream a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Stream a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Stream a)) #

gmapT :: (forall b. Data b => b -> b) -> Stream a -> Stream a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Stream a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Stream a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Stream a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Stream a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Stream a -> m (Stream a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Stream a -> m (Stream a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Stream a -> m (Stream a) #

Monoid a => Monoid (Stream a) Source #

monoid instance for streams generated by monoid instance of the elements.

Instance details

Defined in Math.Number.Stream

Methods

mempty :: Stream a #

mappend :: Stream a -> Stream a -> Stream a #

mconcat :: [Stream a] -> Stream a #

Semigroup a => Semigroup (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

(<>) :: Stream a -> Stream a -> Stream a #

sconcat :: NonEmpty (Stream a) -> Stream a #

stimes :: Integral b => b -> Stream a -> Stream a #

(Enum a, Num a) => Enum (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

succ :: Stream a -> Stream a #

pred :: Stream a -> Stream a #

toEnum :: Int -> Stream a #

fromEnum :: Stream a -> Int #

enumFrom :: Stream a -> [Stream a] #

enumFromThen :: Stream a -> Stream a -> [Stream a] #

enumFromTo :: Stream a -> Stream a -> [Stream a] #

enumFromThenTo :: Stream a -> Stream a -> Stream a -> [Stream a] #

(ConjugateSymmetric a, Closed a, Eq a, Floating a) => Floating (Stream a) Source #

inverse trigonometric functions hyperbolic function

Instance details

Defined in Math.Number.Stream

Methods

pi :: Stream a #

exp :: Stream a -> Stream a #

log :: Stream a -> Stream a #

sqrt :: Stream a -> Stream a #

(**) :: Stream a -> Stream a -> Stream a #

logBase :: Stream a -> Stream a -> Stream a #

sin :: Stream a -> Stream a #

cos :: Stream a -> Stream a #

tan :: Stream a -> Stream a #

asin :: Stream a -> Stream a #

acos :: Stream a -> Stream a #

atan :: Stream a -> Stream a #

sinh :: Stream a -> Stream a #

cosh :: Stream a -> Stream a #

tanh :: Stream a -> Stream a #

asinh :: Stream a -> Stream a #

acosh :: Stream a -> Stream a #

atanh :: Stream a -> Stream a #

log1p :: Stream a -> Stream a #

expm1 :: Stream a -> Stream a #

log1pexp :: Stream a -> Stream a #

log1mexp :: Stream a -> Stream a #

Generic (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Associated Types

type Rep (Stream a) :: Type -> Type #

Methods

from :: Stream a -> Rep (Stream a) x #

to :: Rep (Stream a) x -> Stream a #

Num a => Num (Stream a) Source #

Interpretation of a stream as a polynomial (its ordinary generating function) \[OGF_{s}(z) = \sum_{i=0}^{\infty}s_iz^i\] Good exposition exists in http://en.wikipedia.org/wiki/Formal_power_series

the (*) operation is specific to ordinary generating function interpretation, i.e. discrete convolution/Cauchy product

\[(xy)_k = \sum_{i+j=k}x_iy_j\] \[OGF_{xy}(z) = \sum_{k=0}^{\infty}\sum_{i+j=k}x_iy_jz^k\]

Instance details

Defined in Math.Number.Stream

Methods

(+) :: Stream a -> Stream a -> Stream a #

(-) :: Stream a -> Stream a -> Stream a #

(*) :: Stream a -> Stream a -> Stream a #

negate :: Stream a -> Stream a #

abs :: Stream a -> Stream a #

signum :: Stream a -> Stream a #

fromInteger :: Integer -> Stream a #

Fractional a => Fractional (Stream a) Source #

Fractional instance is based on interpretation of a stream as generating function.

Instance details

Defined in Math.Number.Stream

Methods

(/) :: Stream a -> Stream a -> Stream a #

recip :: Stream a -> Stream a #

fromRational :: Rational -> Stream a #

Integral a => Integral (Stream a) Source #

Integral instance is based on interpretation of a stream as generating function.

Instance details

Defined in Math.Number.Stream

Methods

quot :: Stream a -> Stream a -> Stream a #

rem :: Stream a -> Stream a -> Stream a #

div :: Stream a -> Stream a -> Stream a #

mod :: Stream a -> Stream a -> Stream a #

quotRem :: Stream a -> Stream a -> (Stream a, Stream a) #

divMod :: Stream a -> Stream a -> (Stream a, Stream a) #

toInteger :: Stream a -> Integer #

(Num a, Ord a, Real a) => Real (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

toRational :: Stream a -> Rational #

Show a => Show (ComplexStream a) Source # 
Instance details

Defined in Math.Number.Complex

Show x => Show (Stream x) Source #

Show instance displays 15 elements from beginning of stream To display more elements, use drop operation.

Instance details

Defined in Math.Number.Stream

Methods

showsPrec :: Int -> Stream x -> ShowS #

show :: Stream x -> String #

showList :: [Stream x] -> ShowS #

ConjugateSymmetric a => ConjugateSymmetric (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

conj :: Stream a -> Stream a Source #

(ConjugateSymmetric a, Num a, Closed a) => InnerProductSpace (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

(%.) :: Stream a -> Stream a -> Scalar (Stream a) Source #

MetricSpace (Stream R) Source # 
Instance details

Defined in Math.Number.Real

(Closed a, ConjugateSymmetric a, Floating a) => NormedSpace (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Num a => VectorSpace (Stream a) Source # 
Instance details

Defined in Math.Number.StreamInterface

Associated Types

type Scalar (Stream a) Source #

Methods

vzero :: Stream a Source #

vnegate :: Stream a -> Stream a Source #

(%+) :: Stream a -> Stream a -> Stream a Source #

(%*) :: Scalar (Stream a) -> Stream a -> Stream a Source #

(Closed a, Num a) => Closed (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

PpShow x => PpShow (Stream x) Source #

pretty printing displays 15 element prefix of the stream.

Instance details

Defined in Math.Number.Stream

Methods

pp :: Stream x -> Doc Source #

Builder a => Builder (Stream a) Source #

unfold for streams

Instance details

Defined in Math.Number.Stream

Associated Types

data Unfold (Stream a) :: Type -> Type Source #

Methods

build :: Unfold (Stream a) a0 -> a0 -> Stream a Source #

Visitor (Stream a) Source #

folds over streams

Instance details

Defined in Math.Number.Stream

Associated Types

data Fold (Stream a) :: Type -> Type Source #

Methods

visit :: Fold (Stream a) a0 -> Stream a -> a0 Source #

Eq a => Eq (Stream a) Source #

The instance of Eq is kind of bogus, because equality for streams is only semidecidable. It's still possible to use this if you know that the operation on your specific streams terminate. worst case occurs if the streams contain exactly equal elements.

Instance details

Defined in Math.Number.Stream

Methods

(==) :: Stream a -> Stream a -> Bool #

(/=) :: Stream a -> Stream a -> Bool #

Ord a => Ord (Stream a) Source #

this instance of Ord goes to infinite loop if the compared streams are equal.

Instance details

Defined in Math.Number.Stream

Methods

compare :: Stream a -> Stream a -> Ordering #

(<) :: Stream a -> Stream a -> Bool #

(<=) :: Stream a -> Stream a -> Bool #

(>) :: Stream a -> Stream a -> Bool #

(>=) :: Stream a -> Stream a -> Bool #

max :: Stream a -> Stream a -> Stream a #

min :: Stream a -> Stream a -> Stream a #

Num a => DecomposableVectorSpace (Stream a) ((->) Integer) Source # 
Instance details

Defined in Math.Matrix.Simple

Methods

decompose :: (Scalar (Stream a) -> res) -> Stream a -> Integer -> res Source #

project :: Stream a -> Integer -> Scalar (Stream a) Source #

(Show (Closure Stream r), Floating (Closure Stream r)) => Floating (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Methods

pi :: Closure Stream (Quantity r) #

exp :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

log :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

sqrt :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

(**) :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

logBase :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

sin :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

cos :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

tan :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

asin :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

acos :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

atan :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

sinh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

cosh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

tanh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

asinh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

acosh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

atanh :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

log1p :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

expm1 :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

log1pexp :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

log1mexp :: Closure Stream (Quantity r) -> Closure Stream (Quantity r) #

Floating (Closure Stream R) Source # 
Instance details

Defined in Math.Number.R

Floating (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

(Show (Closure Stream a), RealFloat (Closure Stream a)) => RealFloat (Closure Stream (Quantity a)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Closed a, Fractional a, ConjugateSymmetric a) => Num (Stream a :-> Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

(+) :: (Stream a :-> Stream a) -> (Stream a :-> Stream a) -> Stream a :-> Stream a #

(-) :: (Stream a :-> Stream a) -> (Stream a :-> Stream a) -> Stream a :-> Stream a #

(*) :: (Stream a :-> Stream a) -> (Stream a :-> Stream a) -> Stream a :-> Stream a #

negate :: (Stream a :-> Stream a) -> Stream a :-> Stream a #

abs :: (Stream a :-> Stream a) -> Stream a :-> Stream a #

signum :: (Stream a :-> Stream a) -> Stream a :-> Stream a #

fromInteger :: Integer -> Stream a :-> Stream a #

(Limiting Stream a, RealFloat a) => Num (Closure Stream (Complex a)) Source # 
Instance details

Defined in Math.Number.Stream

Num (Closure Stream Rational) Source # 
Instance details

Defined in Math.Number.Stream

(Show (Closure Stream r), Num (Closure Stream r)) => Num (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Num (Closure Stream R) Source # 
Instance details

Defined in Math.Number.R

Num (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

Num (Closure Stream Integer) Source # 
Instance details

Defined in Math.Number.Stream

Fractional (Closure Stream Rational) Source # 
Instance details

Defined in Math.Number.Stream

(Show (Closure Stream r), Fractional (Closure Stream r)) => Fractional (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Fractional (Closure Stream R) Source # 
Instance details

Defined in Math.Number.R

Fractional (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

(Show (Closure Stream r), Real (Closure Stream r)) => Real (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Show (Closure Stream r), RealFrac (Closure Stream r)) => RealFrac (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Show (Closure Stream Rational) Source # 
Instance details

Defined in Math.Number.Stream

(ShowPrecision r, Show (Closure Stream r), Floating r, Ord r) => Show (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

Show (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

Show (Closure Stream a) => Show (Closure Stream (Stream a)) Source # 
Instance details

Defined in Math.Number.Stream

Show (Closure Stream Integer) Source # 
Instance details

Defined in Math.Number.Stream

Show (Closure Stream Double) Source # 
Instance details

Defined in Math.Number.Stream

Show (Closure Stream Float) Source # 
Instance details

Defined in Math.Number.Stream

(Closed a, Num a, ConjugateSymmetric a) => ConjugateSymmetric (Stream a :-> Stream a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

conj :: (Stream a :-> Stream a) -> Stream a :-> Stream a Source #

ConjugateSymmetric (Closure Stream R) Source # 
Instance details

Defined in Math.Number.R

MetricSpace (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

VectorSpace (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

Associated Types

type Scalar (Closure Stream R) Source #

DifferentiallyClosed (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

Infinitary (Closure Stream Rational) Source # 
Instance details

Defined in Math.Number.Stream

Infinitary (Closure Stream R) Source # 
Instance details

Defined in Math.Number.R

Infinitary (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

Infinitary (Closure Stream Integer) Source # 
Instance details

Defined in Math.Number.Stream

(Show (Closure Stream r), Eq (Closure Stream r)) => Eq (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Show (Closure Stream r), Num (Closure Stream r), Ord (Closure Stream r)) => Ord (Closure Stream (Quantity r)) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Closed a, RealFloat a) => Floating ((Stream :*: Complex) a) Source # 
Instance details

Defined in Math.Number.Complex

RealFloat a => Num ((Stream :*: Complex) a) Source # 
Instance details

Defined in Math.Number.Complex

RealFloat a => Fractional ((Stream :*: Complex) a) Source # 
Instance details

Defined in Math.Number.Complex

PpShow a => Show ((Stream :*: Stream) a) Source # 
Instance details

Defined in Math.Number.Stream

ConjugateSymmetric a => ConjugateSymmetric ((Stream :*: Stream) a) Source # 
Instance details

Defined in Math.Number.Stream

Methods

conj :: (Stream :*: Stream) a -> (Stream :*: Stream) a Source #

data Codiagonal Stream a Source # 
Instance details

Defined in Math.Number.StreamInterface

type Vector2 :+: Stream Source # 
Instance details

Defined in Math.Matrix.VectorConversions

type Vector3 :+: Stream Source # 
Instance details

Defined in Math.Number.Stream

type Stream \\ a Source # 
Instance details

Defined in Math.Number.StreamInterface

type Stream \\ a = Stream a
data Closure Stream Rational Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream R Source # 
Instance details

Defined in Math.Number.R

data Closure Stream R Source # 
Instance details

Defined in Math.Number.Real

data Closure Stream Integer Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream Double Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream Float Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream (Quantity r) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

data Closure Stream (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream (IO ()) Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream (a :==: a) Source # 
Instance details

Defined in Math.Number.Stream

data Closure Stream (Kleisli m a a) Source # 
Instance details

Defined in Math.Number.Stream

type Rep (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

type Rep (Stream a) = D1 ('MetaData "Stream" "Math.Number.StreamInterface" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) (C1 ('MetaCons "Pre" 'PrefixI 'True) (S1 ('MetaSel ('Just "shead_impl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "stail_lazy") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Stream a))))
type Scalar (Stream a) Source # 
Instance details

Defined in Math.Number.StreamInterface

type Scalar (Stream a) = a
data Fold (Stream a) b Source # 
Instance details

Defined in Math.Number.Stream

data Fold (Stream a) b = StreamFold (a -> c -> b) (Fold (Stream a) c)
data Unfold (Stream a) b Source # 
Instance details

Defined in Math.Number.Stream

data Unfold (Stream a) b = StreamUnfold (Unfold a b) (Unfold (Stream a) b)
type Scalar (Closure Stream R) Source # 
Instance details

Defined in Math.Number.Real

class Infinitesimal Stream a => Closed a where Source #

Instances

Instances details
Closed R Source # 
Instance details

Defined in Math.Number.R

Closed R Source # 
Instance details

Defined in Math.Number.Real

Closed Double Source # 
Instance details

Defined in Math.Number.Stream

Closed Float Source # 
Instance details

Defined in Math.Number.Stream

(RealFloat a, Infinitesimal Stream a) => Closed (Complex a) Source # 
Instance details

Defined in Math.Number.Stream

(Closed a, Show a) => Closed (Quantity a) Source # 
Instance details

Defined in Math.Number.DimensionalAnalysis

(Closed a, Num a) => Closed (Stream a) Source # 
Instance details

Defined in Math.Number.Stream

type DerivateConstraint str a = (Monad str, Num a) Source #

partial_derivate :: (Closed eps, Fractional eps) => (eps -> a -> a) -> (a -> eps) -> a -> eps Source #

\[ {\rm{partial\_derivate}}(\Delta, f, x) = \lim_{\epsilon \rightarrow 0}{{f(\Delta_{\epsilon}(x)) - f(x)}\over{\Delta_{\epsilon}(x) - x}} \]

partial_derive :: (Closed a, Infinitesimal Stream a, Fractional a) => (a -> a -> a) -> (a -> a) -> a -> a Source #

\[ {\rm{partial\_derive}}(\Delta, f, x) = \lim_{\epsilon \rightarrow 0}{{f(\Delta_{\epsilon}(x)) - f(x)}\over{\Delta_{\epsilon}(x) - x}} \]

derivate_around :: Infinitesimal str a => (a -> a) -> a -> Closure str a Source #

derivate_around doesn't require f to be defined at x, but requires limits from both sides of x to exist [it never evaluates f at x]. \[ \lim_{\epsilon \rightarrow 0} {{f(x+\epsilon)-f(x-\epsilon)}\over{2\epsilon}} \]

vector_derivate :: (Infinitesimal str (Scalar a), VectorSpace a, Limiting str a) => (Scalar a -> a) -> Scalar a -> Closure str a Source #

derivate_closed :: Infinitesimal str a => (a -> a) -> a -> Closure str a Source #

iterate_stream :: StreamBuilder str => (a -> a) -> a -> str a Source #

partial_derivate1_2 :: Infinitesimal str a => (a -> b -> a) -> a -> b -> Closure str a Source #

\[\lim_{\epsilon\rightarrow 0}{{f(a+\epsilon,b)-f(a,b)}\over{\epsilon}}\]

partial_derivate2_2 :: Infinitesimal str a => (b -> a -> a) -> b -> a -> Closure str a Source #

\[\lim_{\epsilon\rightarrow 0}{{f(a,b+\epsilon)-f(a,b)}\over{\epsilon}}\]

partial_derivate1_3 :: Infinitesimal str a => (a -> b -> c -> a) -> a -> b -> c -> Closure str a Source #

\[\lim_{\epsilon\rightarrow 0}{{f(a+\epsilon,b,c)-f(a,b,c)}\over{\epsilon}}\]

partial_derivate2_3 :: Infinitesimal str a => (b -> a -> c -> a) -> b -> a -> c -> Closure str a Source #

\[\lim_{\epsilon\rightarrow 0}{{f(a,b+\epsilon,c)-f(a,b,c)}\over{\epsilon}}\]

partial_derivate3_3 :: Infinitesimal str a => (b -> c -> a -> a) -> b -> c -> a -> Closure str a Source #

\[\lim_{\epsilon\rightarrow 0}{{f(a,b,c+\epsilon)-f(a,b,c)}\over{\epsilon}}\]

constant :: a -> Stream a Source #

stream consisting of the same element repeated.