packages feed

ad 0.27 → 0.28

raw patch · 13 files changed

+309/−138 lines, 13 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Numeric.AD.Stream: (:<) :: a -> f (f :> a) -> :> f a
- Numeric.AD.Stream: class (Functor f) => Comonad f
- Numeric.AD.Stream: data (:>) f a
- Numeric.AD.Stream: duplicate :: (Comonad f) => (f :> a) -> (f :> (f :> a))
- Numeric.AD.Stream: extend :: (Comonad f) => ((f :> a) -> b) -> (f :> a) -> (f :> b)
- Numeric.AD.Stream: extract :: (Comonad f) => (f :> a) -> a
- Numeric.AD.Stream: tails :: (f :> a) -> f (f :> a)
- Numeric.AD.Stream: unfold :: (Functor f) => (a -> (b, f a)) -> a -> (f :> b)
+ Numeric.AD.Internal: AD :: f a -> AD f a
+ Numeric.AD.Internal: Id :: a -> Id a
+ Numeric.AD.Internal: Pair :: a -> b -> Pair a b
+ Numeric.AD.Internal: data Pair a b
+ Numeric.AD.Internal: instance (Bounded a) => Bounded (Id a)
+ Numeric.AD.Internal: instance (Enum a) => Enum (Id a)
+ Numeric.AD.Internal: instance (Eq a) => Eq (Id a)
+ Numeric.AD.Internal: instance (Eq a, Eq b) => Eq (Pair a b)
+ Numeric.AD.Internal: instance (Floating a) => Floating (Id a)
+ Numeric.AD.Internal: instance (Fractional a) => Fractional (Id a)
+ Numeric.AD.Internal: instance (Lifted f) => Lifted (AD f)
+ Numeric.AD.Internal: instance (Lifted f, Floating a) => Floating (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, Fractional a) => Fractional (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, Num a) => Num (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, Real a) => Real (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, RealFloat a) => RealFloat (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, RealFrac a) => RealFrac (AD f a)
+ Numeric.AD.Internal: instance (Lifted f, Show a) => Show (AD f a)
+ Numeric.AD.Internal: instance (Mode f) => Mode (AD f)
+ Numeric.AD.Internal: instance (Monoid a) => Monoid (Id a)
+ Numeric.AD.Internal: instance (Num a) => Num (Id a)
+ Numeric.AD.Internal: instance (Num a, Lifted f, Bounded a) => Bounded (AD f a)
+ Numeric.AD.Internal: instance (Num a, Lifted f, Enum a) => Enum (AD f a)
+ Numeric.AD.Internal: instance (Num a, Lifted f, Eq a) => Eq (AD f a)
+ Numeric.AD.Internal: instance (Num a, Lifted f, Ord a) => Ord (AD f a)
+ Numeric.AD.Internal: instance (Ord a) => Ord (Id a)
+ Numeric.AD.Internal: instance (Ord a, Ord b) => Ord (Pair a b)
+ Numeric.AD.Internal: instance (Primal f) => Primal (AD f)
+ Numeric.AD.Internal: instance (Read a, Read b) => Read (Pair a b)
+ Numeric.AD.Internal: instance (Real a) => Real (Id a)
+ Numeric.AD.Internal: instance (RealFloat a) => RealFloat (Id a)
+ Numeric.AD.Internal: instance (RealFrac a) => RealFrac (Id a)
+ Numeric.AD.Internal: instance (Show a) => Show (Id a)
+ Numeric.AD.Internal: instance (Show a, Show b) => Show (Pair a b)
+ Numeric.AD.Internal: instance Applicative Id
+ Numeric.AD.Internal: instance Foldable (Pair a)
+ Numeric.AD.Internal: instance Functor (Pair a)
+ Numeric.AD.Internal: instance Functor Id
+ Numeric.AD.Internal: instance Iso (f a) (AD f a)
+ Numeric.AD.Internal: instance Iso a (Id a)
+ Numeric.AD.Internal: instance Iso a a
+ Numeric.AD.Internal: instance Lifted Id
+ Numeric.AD.Internal: instance Mode Id
+ Numeric.AD.Internal: instance Monad Id
+ Numeric.AD.Internal: instance Primal Id
+ Numeric.AD.Internal: instance Traversable (Pair a)
+ Numeric.AD.Internal: newtype AD f a
+ Numeric.AD.Internal: newtype Id a
+ Numeric.AD.Internal: on :: (a -> a -> b) -> (c -> a) -> c -> c -> b
+ Numeric.AD.Internal: probe :: a -> AD Id a
+ Numeric.AD.Internal: probed :: f a -> f (AD Id a)
+ Numeric.AD.Internal: runAD :: AD f a -> f a
+ Numeric.AD.Internal: type UF f a = forall s. (Mode s) => AD s a -> f (AD s a)
+ Numeric.AD.Internal: type FF f g a = forall s. (Mode s) => f (AD s a) -> g (AD s a)
+ Numeric.AD.Internal: unprobe :: AD Id a -> a
+ Numeric.AD.Internal: unprobed :: f (AD Id a) -> f a
+ Numeric.AD.Internal: zipWithDefaultT :: (Foldable f, Traversable g) => a -> (a -> b -> c) -> f a -> g b -> g c
+ Numeric.AD.Internal: zipWithT :: (Foldable f, Traversable g) => (a -> b -> c) -> f a -> g b -> g c
+ Numeric.AD.Internal.Classes: (*!) :: (Lifted t, Num a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (**!) :: (Lifted t, Floating a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (*^) :: (Mode t, Num a) => a -> t a -> t a
+ Numeric.AD.Internal.Classes: (+!) :: (Lifted t, Num a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (-!) :: (Lifted t, Num a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (/!) :: (Lifted t, Fractional a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (<+>) :: (Mode t, Num a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: (==!) :: (Lifted t, Num a, Eq a) => t a -> t a -> Bool
+ Numeric.AD.Internal.Classes: (^*) :: (Mode t, Num a) => t a -> a -> t a
+ Numeric.AD.Internal.Classes: (^/) :: (Mode t, Fractional a) => t a -> a -> t a
+ Numeric.AD.Internal.Classes: abs1 :: (Lifted t, Num a) => t a -> t a
+ Numeric.AD.Internal.Classes: acos1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: acosh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: asin1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: asinh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: atan1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: atan21 :: (Lifted t, RealFloat a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: atanh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: binary :: (Jacobian t, Num a) => (a -> a -> a) -> D t a -> D t a -> t a -> t a -> t a
+ Numeric.AD.Internal.Classes: ceiling1 :: (Lifted t, RealFrac a, Integral b) => t a -> b
+ Numeric.AD.Internal.Classes: class (Mode t, Mode (D t)) => Jacobian t where { type family D t :: * -> *; }
+ Numeric.AD.Internal.Classes: class Lifted t
+ Numeric.AD.Internal.Classes: class (Lifted t) => Mode t
+ Numeric.AD.Internal.Classes: class Primal t
+ Numeric.AD.Internal.Classes: compare1 :: (Lifted t, Num a, Ord a) => t a -> t a -> Ordering
+ Numeric.AD.Internal.Classes: cos1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: cosh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: decodeFloat1 :: (Lifted t, RealFloat a) => t a -> (Integer, Int)
+ Numeric.AD.Internal.Classes: deriveLifted :: Q Type -> Q [Dec]
+ Numeric.AD.Internal.Classes: deriveNumeric :: ([Q Pred] -> [Q Pred]) -> Q Type -> Q [Dec]
+ Numeric.AD.Internal.Classes: encodeFloat1 :: (Lifted t, RealFloat a) => Integer -> Int -> t a
+ Numeric.AD.Internal.Classes: enumFrom1 :: (Lifted t, Num a, Enum a) => t a -> [t a]
+ Numeric.AD.Internal.Classes: enumFromThen1 :: (Lifted t, Num a, Enum a) => t a -> t a -> [t a]
+ Numeric.AD.Internal.Classes: enumFromThenTo1 :: (Lifted t, Num a, Enum a) => t a -> t a -> t a -> [t a]
+ Numeric.AD.Internal.Classes: enumFromTo1 :: (Lifted t, Num a, Enum a) => t a -> t a -> [t a]
+ Numeric.AD.Internal.Classes: exp1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: exponent1 :: (Lifted t, RealFloat a) => t a -> Int
+ Numeric.AD.Internal.Classes: floatDigits1 :: (Lifted t, RealFloat a) => t a -> Int
+ Numeric.AD.Internal.Classes: floatRadix1 :: (Lifted t, RealFloat a) => t a -> Integer
+ Numeric.AD.Internal.Classes: floatRange1 :: (Lifted t, RealFloat a) => t a -> (Int, Int)
+ Numeric.AD.Internal.Classes: floor1 :: (Lifted t, RealFrac a, Integral b) => t a -> b
+ Numeric.AD.Internal.Classes: fromEnum1 :: (Lifted t, Num a, Enum a) => t a -> Int
+ Numeric.AD.Internal.Classes: fromInteger1 :: (Lifted t, Num a) => Integer -> t a
+ Numeric.AD.Internal.Classes: fromRational1 :: (Lifted t, Fractional a) => Rational -> t a
+ Numeric.AD.Internal.Classes: isDenormalized1 :: (Lifted t, RealFloat a) => t a -> Bool
+ Numeric.AD.Internal.Classes: isIEEE1 :: (Lifted t, RealFloat a) => t a -> Bool
+ Numeric.AD.Internal.Classes: isInfinite1 :: (Lifted t, RealFloat a) => t a -> Bool
+ Numeric.AD.Internal.Classes: isNaN1 :: (Lifted t, RealFloat a) => t a -> Bool
+ Numeric.AD.Internal.Classes: isNegativeZero1 :: (Lifted t, RealFloat a) => t a -> Bool
+ Numeric.AD.Internal.Classes: lift :: (Mode t, Num a) => a -> t a
+ Numeric.AD.Internal.Classes: lift1 :: (Jacobian t, Num a) => (a -> a) -> (D t a -> D t a) -> t a -> t a
+ Numeric.AD.Internal.Classes: lift1_ :: (Jacobian t, Num a) => (a -> a) -> (D t a -> D t a -> D t a) -> t a -> t a
+ Numeric.AD.Internal.Classes: lift2 :: (Jacobian t, Num a) => (a -> a -> a) -> (D t a -> D t a -> (D t a, D t a)) -> t a -> t a -> t a
+ Numeric.AD.Internal.Classes: lift2_ :: (Jacobian t, Num a) => (a -> a -> a) -> (D t a -> D t a -> D t a -> (D t a, D t a)) -> t a -> t a -> t a
+ Numeric.AD.Internal.Classes: log1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: logBase1 :: (Lifted t, Floating a) => t a -> t a -> t a
+ Numeric.AD.Internal.Classes: maxBound1 :: (Lifted t, Num a, Bounded a) => t a
+ Numeric.AD.Internal.Classes: minBound1 :: (Lifted t, Num a, Bounded a) => t a
+ Numeric.AD.Internal.Classes: negate1 :: (Lifted t, Num a) => t a -> t a
+ Numeric.AD.Internal.Classes: one :: (Mode t, Num a) => t a
+ Numeric.AD.Internal.Classes: pi1 :: (Lifted t, Floating a) => t a
+ Numeric.AD.Internal.Classes: pred1 :: (Lifted t, Num a, Enum a) => t a -> t a
+ Numeric.AD.Internal.Classes: primal :: (Primal t, Num a) => t a -> a
+ Numeric.AD.Internal.Classes: properFraction1 :: (Lifted t, RealFrac a, Integral b) => t a -> (b, t a)
+ Numeric.AD.Internal.Classes: recip1 :: (Lifted t, Fractional a) => t a -> t a
+ Numeric.AD.Internal.Classes: round1 :: (Lifted t, RealFrac a, Integral b) => t a -> b
+ Numeric.AD.Internal.Classes: scaleFloat1 :: (Lifted t, RealFloat a) => Int -> t a -> t a
+ Numeric.AD.Internal.Classes: showsPrec1 :: (Lifted t, Show a) => Int -> t a -> ShowS
+ Numeric.AD.Internal.Classes: significand1 :: (Lifted t, RealFloat a) => t a -> t a
+ Numeric.AD.Internal.Classes: signum1 :: (Lifted t, Num a) => t a -> t a
+ Numeric.AD.Internal.Classes: sin1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: sinh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: sqrt1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: succ1 :: (Lifted t, Num a, Enum a) => t a -> t a
+ Numeric.AD.Internal.Classes: tan1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: tanh1 :: (Lifted t, Floating a) => t a -> t a
+ Numeric.AD.Internal.Classes: toEnum1 :: (Lifted t, Num a, Enum a) => Int -> t a
+ Numeric.AD.Internal.Classes: toRational1 :: (Lifted t, Real a) => t a -> Rational
+ Numeric.AD.Internal.Classes: truncate1 :: (Lifted t, RealFrac a, Integral b) => t a -> b
+ Numeric.AD.Internal.Classes: unary :: (Jacobian t, Num a) => (a -> a) -> D t a -> t a -> t a
+ Numeric.AD.Internal.Classes: zero :: (Mode t, Num a) => t a
+ Numeric.AD.Internal.Comonad: class (Copointed f) => Comonad f
+ Numeric.AD.Internal.Comonad: class (Functor f) => Copointed f
+ Numeric.AD.Internal.Comonad: duplicate :: (Comonad f) => f a -> f (f a)
+ Numeric.AD.Internal.Comonad: extend :: (Comonad f) => (f a -> b) -> f a -> f b
+ Numeric.AD.Internal.Comonad: extract :: (Copointed f) => f a -> a
+ Numeric.AD.Internal.Composition: ComposeFunctor :: f (g a) -> ComposeFunctor f g a
+ Numeric.AD.Internal.Composition: ComposeMode :: f (AD g a) -> ComposeMode f g a
+ Numeric.AD.Internal.Composition: composeMode :: AD f (AD g a) -> AD (ComposeMode f g) a
+ Numeric.AD.Internal.Composition: decomposeFunctor :: ComposeFunctor f g a -> f (g a)
+ Numeric.AD.Internal.Composition: decomposeMode :: AD (ComposeMode f g) a -> AD f (AD g a)
+ Numeric.AD.Internal.Composition: instance (Foldable f, Foldable g) => Foldable (ComposeFunctor f g)
+ Numeric.AD.Internal.Composition: instance (Functor f, Functor g) => Functor (ComposeFunctor f g)
+ Numeric.AD.Internal.Composition: instance (Mode f, Mode g) => Lifted (ComposeMode f g)
+ Numeric.AD.Internal.Composition: instance (Mode f, Mode g) => Mode (ComposeMode f g)
+ Numeric.AD.Internal.Composition: instance (Primal f, Mode g, Primal g) => Primal (ComposeMode f g)
+ Numeric.AD.Internal.Composition: instance (Traversable f, Traversable g) => Traversable (ComposeFunctor f g)
+ Numeric.AD.Internal.Composition: newtype ComposeFunctor f g a
+ Numeric.AD.Internal.Composition: newtype ComposeMode f g a
+ Numeric.AD.Internal.Composition: runComposeMode :: ComposeMode f g a -> f (AD g a)
+ Numeric.AD.Internal.Forward: Forward :: a -> a -> Forward a
+ Numeric.AD.Internal.Forward: apply :: (Num a) => (AD Forward a -> b) -> a -> b
+ Numeric.AD.Internal.Forward: bind :: (Traversable f, Num a) => (f (AD Forward a) -> b) -> f a -> f b
+ Numeric.AD.Internal.Forward: bind' :: (Traversable f, Num a) => (f (AD Forward a) -> b) -> f a -> (b, f b)
+ Numeric.AD.Internal.Forward: bindWith :: (Traversable f, Num a) => (a -> b -> c) -> (f (AD Forward a) -> b) -> f a -> f c
+ Numeric.AD.Internal.Forward: bindWith' :: (Traversable f, Num a) => (a -> b -> c) -> (f (AD Forward a) -> b) -> f a -> (b, f c)
+ Numeric.AD.Internal.Forward: bundle :: a -> a -> AD Forward a
+ Numeric.AD.Internal.Forward: data Forward a
+ Numeric.AD.Internal.Forward: instance (Data a) => Data (Forward a)
+ Numeric.AD.Internal.Forward: instance (Lifted Forward) => Jacobian Forward
+ Numeric.AD.Internal.Forward: instance (Lifted Forward) => Mode Forward
+ Numeric.AD.Internal.Forward: instance (Show a) => Show (Forward a)
+ Numeric.AD.Internal.Forward: instance Lifted Forward
+ Numeric.AD.Internal.Forward: instance Primal Forward
+ Numeric.AD.Internal.Forward: instance Typeable1 Forward
+ Numeric.AD.Internal.Forward: tangent :: AD Forward a -> a
+ Numeric.AD.Internal.Forward: transposeWith :: (Functor f, Foldable f, Traversable g) => (b -> f a -> c) -> f (g a) -> g b -> g c
+ Numeric.AD.Internal.Forward: unbundle :: AD Forward a -> (a, a)
+ Numeric.AD.Internal.Iterated: (:|) :: a -> f (Iterated f a) -> Iterated f a
+ Numeric.AD.Internal.Iterated: data Iterated f a
+ Numeric.AD.Internal.Iterated: instance (Foldable f) => Foldable (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Functor f) => Comonad (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Functor f) => Copointed (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Functor f) => Functor (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Mode f) => Lifted (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Mode f) => Mode (Iterated f)
+ Numeric.AD.Internal.Iterated: instance (Mode f, Floating a) => Floating (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, Fractional a) => Fractional (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, Num a) => Num (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, Real a) => Real (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, RealFloat a) => RealFloat (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, RealFrac a) => RealFrac (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Mode f, Show a) => Show (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Num a, Mode f, Bounded a) => Bounded (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Num a, Mode f, Enum a) => Enum (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Num a, Mode f, Eq a) => Eq (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Num a, Mode f, Ord a) => Ord (Iterated f a)
+ Numeric.AD.Internal.Iterated: instance (Traversable f) => Traversable (Iterated f)
+ Numeric.AD.Internal.Iterated: instance Primal (Iterated f)
+ Numeric.AD.Internal.Iterated: tailI :: (Iterated f a) -> f (Iterated f a)
+ Numeric.AD.Internal.Iterated: unfoldI :: (Functor f) => (a -> (b, f a)) -> a -> Iterated f b
+ Numeric.AD.Internal.Reverse: Binary :: a -> a -> a -> t -> t -> Tape a t
+ Numeric.AD.Internal.Reverse: Lift :: a -> Tape a t
+ Numeric.AD.Internal.Reverse: Reverse :: (Tape a (Reverse a)) -> Reverse a
+ Numeric.AD.Internal.Reverse: Unary :: a -> a -> t -> Tape a t
+ Numeric.AD.Internal.Reverse: Var :: a -> !!Int -> Tape a t
+ Numeric.AD.Internal.Reverse: bind :: (Traversable f, Var v) => f a -> (f (v a), (Int, Int))
+ Numeric.AD.Internal.Reverse: class (Primal v) => Var v
+ Numeric.AD.Internal.Reverse: data Tape a t
+ Numeric.AD.Internal.Reverse: derivative :: (Num a) => AD Reverse a -> a
+ Numeric.AD.Internal.Reverse: derivative' :: (Num a) => AD Reverse a -> (a, a)
+ Numeric.AD.Internal.Reverse: instance (Lifted Reverse) => Jacobian Reverse
+ Numeric.AD.Internal.Reverse: instance (Lifted Reverse) => Mode Reverse
+ Numeric.AD.Internal.Reverse: instance (Show a) => Show (Reverse a)
+ Numeric.AD.Internal.Reverse: instance (Show a, Show t) => Show (Tape a t)
+ Numeric.AD.Internal.Reverse: instance Lifted Reverse
+ Numeric.AD.Internal.Reverse: instance Monad S
+ Numeric.AD.Internal.Reverse: instance MuRef (Reverse a)
+ Numeric.AD.Internal.Reverse: instance Primal Reverse
+ Numeric.AD.Internal.Reverse: instance Var (AD Reverse)
+ Numeric.AD.Internal.Reverse: instance Var Reverse
+ Numeric.AD.Internal.Reverse: newtype Reverse a
+ Numeric.AD.Internal.Reverse: partialArray :: (Num a) => (Int, Int) -> AD Reverse a -> Array Int a
+ Numeric.AD.Internal.Reverse: partialMap :: (Num a) => AD Reverse a -> IntMap a
+ Numeric.AD.Internal.Reverse: partials :: (Num a) => AD Reverse a -> [(Int, a)]
+ Numeric.AD.Internal.Reverse: unbind :: (Functor f, Var v) => f (v a) -> Array Int a -> f a
+ Numeric.AD.Internal.Reverse: unbindMap :: (Functor f, Var v, Num a) => f (v a) -> IntMap a -> f a
+ Numeric.AD.Internal.Reverse: unbindMapWithDefault :: (Functor f, Var v, Num a) => b -> (a -> b -> c) -> f (v a) -> IntMap b -> f c
+ Numeric.AD.Internal.Reverse: unbindWith :: (Functor f, Var v, Num a) => (a -> b -> c) -> f (v a) -> Array Int b -> f c
+ Numeric.AD.Internal.Reverse: var :: (Var v) => a -> Int -> v a
+ Numeric.AD.Internal.Reverse: varId :: (Var v) => v a -> Int
+ Numeric.AD.Internal.Stream: (:<) :: a -> f (Stream f a) -> Stream f a
+ Numeric.AD.Internal.Stream: data Stream f a
+ Numeric.AD.Internal.Stream: headS :: Stream f a -> a
+ Numeric.AD.Internal.Stream: instance (Foldable f) => Foldable (Stream f)
+ Numeric.AD.Internal.Stream: instance (Functor f) => Comonad (Stream f)
+ Numeric.AD.Internal.Stream: instance (Functor f) => Copointed (Stream f)
+ Numeric.AD.Internal.Stream: instance (Functor f) => Functor (Stream f)
+ Numeric.AD.Internal.Stream: instance (Show a, Show (f (Stream f a))) => Show (Stream f a)
+ Numeric.AD.Internal.Stream: instance (Traversable f) => Traversable (Stream f)
+ Numeric.AD.Internal.Stream: tailS :: Stream f a -> f (Stream f a)
+ Numeric.AD.Internal.Stream: unfoldS :: (Functor f) => (a -> (b, f a)) -> a -> Stream f b
+ Numeric.AD.Internal.Tensors: (:-) :: a -> Tensors f (f a) -> Tensors f a
+ Numeric.AD.Internal.Tensors: data Tensors f a
+ Numeric.AD.Internal.Tensors: headT :: Tensors f a -> a
+ Numeric.AD.Internal.Tensors: instance (Foldable f) => Foldable (Tensors f)
+ Numeric.AD.Internal.Tensors: instance (Functor f) => Copointed (Tensors f)
+ Numeric.AD.Internal.Tensors: instance (Functor f) => Functor (Tensors f)
+ Numeric.AD.Internal.Tensors: instance (Traversable f) => Traversable (Tensors f)
+ Numeric.AD.Internal.Tensors: tailT :: Tensors f a -> Tensors f (f a)
+ Numeric.AD.Internal.Tensors: tensors :: (Functor f) => Stream f a -> Tensors f a
+ Numeric.AD.Internal.Tower: Tower :: [a] -> Tower a
+ Numeric.AD.Internal.Tower: apply :: (Num a) => (AD Tower a -> b) -> a -> b
+ Numeric.AD.Internal.Tower: bundle :: a -> Tower a -> Tower a
+ Numeric.AD.Internal.Tower: d :: (Num a) => [a] -> a
+ Numeric.AD.Internal.Tower: d' :: (Num a) => [a] -> (a, a)
+ Numeric.AD.Internal.Tower: getADTower :: AD Tower a -> [a]
+ Numeric.AD.Internal.Tower: getTower :: Tower a -> [a]
+ Numeric.AD.Internal.Tower: instance (Lifted Tower) => Jacobian Tower
+ Numeric.AD.Internal.Tower: instance (Lifted Tower) => Mode Tower
+ Numeric.AD.Internal.Tower: instance (Show a) => Show (Tower a)
+ Numeric.AD.Internal.Tower: instance Lifted Tower
+ Numeric.AD.Internal.Tower: instance Primal Tower
+ Numeric.AD.Internal.Tower: newtype Tower a
+ Numeric.AD.Internal.Tower: tangents :: Tower a -> Tower a
+ Numeric.AD.Internal.Tower: tower :: [a] -> AD Tower a
+ Numeric.AD.Internal.Tower: transposePadF :: (Foldable f, Functor f) => a -> f [a] -> [f a]
+ Numeric.AD.Internal.Tower: withD :: (a, a) -> AD Tower a
+ Numeric.AD.Internal.Tower: zeroPad :: (Num a) => [a] -> [a]
+ Numeric.AD.Internal.Tower: zeroPadF :: (Functor f, Num a) => [f a] -> [f a]
+ Numeric.AD.Tensors: (:-) :: a -> Tensors f (f a) -> Tensors f a
+ Numeric.AD.Tensors: (:<) :: a -> f (Stream f a) -> Stream f a
+ Numeric.AD.Tensors: class (Copointed f) => Comonad f
+ Numeric.AD.Tensors: class (Functor f) => Copointed f
+ Numeric.AD.Tensors: data Stream f a
+ Numeric.AD.Tensors: data Tensors f a
+ Numeric.AD.Tensors: duplicate :: (Comonad f) => f a -> f (f a)
+ Numeric.AD.Tensors: extend :: (Comonad f) => (f a -> b) -> f a -> f b
+ Numeric.AD.Tensors: extract :: (Copointed f) => f a -> a
+ Numeric.AD.Tensors: headS :: Stream f a -> a
+ Numeric.AD.Tensors: headT :: Tensors f a -> a
+ Numeric.AD.Tensors: tailS :: Stream f a -> f (Stream f a)
+ Numeric.AD.Tensors: tailT :: Tensors f a -> Tensors f (f a)
+ Numeric.AD.Tensors: tensors :: (Functor f) => Stream f a -> Tensors f a
+ Numeric.AD.Tensors: unfoldS :: (Functor f) => (a -> (b, f a)) -> a -> Stream f b

Files

Numeric/AD/Internal.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, GeneralizedNewtypeDeriving, TemplateHaskell, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, DeriveFunctor, DeriveFoldable, DeriveTraversable #-}-{-# OPTIONS_HADDOCK hide, prune #-}+-- {-# OPTIONS_HADDOCK hide, prune #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal@@ -32,9 +32,13 @@ import Data.Traversable (Traversable, mapAccumL) import Data.Foldable (Foldable, toList) +-- | A scalar-to-scalar automatically-differentiable function. type UU a = forall s. Mode s => AD s a -> AD s a+-- | A scalar-to-non-scalar automatically-differentiable function. type UF f a = forall s. Mode s => AD s a -> f (AD s a)+-- | A non-scalar-to-scalar automatically-differentiable function. type FU f a = forall s. Mode s => f (AD s a) -> AD s a+-- | A non-scalar-to-non-scalar automatically-differentiable function. type FF f g a = forall s. Mode s => f (AD s a) -> g (AD s a)  on :: (a -> a -> b) -> (c -> a) -> c -> c -> b
Numeric/AD/Internal/Classes.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, TypeFamilies, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, FunctionalDependencies, UndecidableInstances, GeneralizedNewtypeDeriving, TemplateHaskell #-}-{-# OPTIONS_HADDOCK hide #-}+-- {-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal.Classes
+ Numeric/AD/Internal/Comonad.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE TypeOperators, TemplateHaskell, ScopedTypeVariables #-}+-- {-# OPTIONS_HADDOCK hide #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Numeric.AD.Internal.Comonad+-- Copyright   :  (c) Edward Kmett 2010+-- License     :  BSD3+-- Maintainer  :  ekmett@gmail.com+-- Stability   :  experimental+-- Portability :  GHC only+--+-----------------------------------------------------------------------------++-- TODO: separate a \"comonads\" package from \"category-extras\"++module Numeric.AD.Internal.Comonad+    ( Copointed(..)+    , Comonad(..)+    ) where++class Functor f => Copointed f where+    extract :: f a -> a++class Copointed f => Comonad f where+    duplicate :: f a -> f (f a)+    extend :: (f a -> b) -> f a -> f b++    duplicate = extend id+    extend f = fmap f . duplicate
Numeric/AD/Internal/Composition.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, TypeFamilies, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, FlexibleContexts, TemplateHaskell, UndecidableInstances, TypeOperators #-}-{-# OPTIONS_HADDOCK hide, prune #-}+-- {-# OPTIONS_HADDOCK hide, prune #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal.Composition
Numeric/AD/Internal/Forward.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, TypeFamilies, DeriveDataTypeable, TemplateHaskell, UndecidableInstances, BangPatterns #-}-{-# OPTIONS_HADDOCK hide, prune #-}+-- {-# OPTIONS_HADDOCK hide, prune #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal.Forward
+ Numeric/AD/Internal/Iterated.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE TemplateHaskell, ScopedTypeVariables, DeriveDataTypeable, FlexibleContexts, UndecidableInstances #-}+-- {-# OPTIONS_HADDOCK hide #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Numeric.AD.Internal.Iterated+-- Copyright   :  (c) Edward Kmett 2010+-- License     :  BSD3+-- Maintainer  :  ekmett@gmail.com+-- Stability   :  experimental+-- Portability :  GHC only+--+-----------------------------------------------------------------------------++module Numeric.AD.Internal.Iterated+    ( Iterated(..)+    , tailI+    , unfoldI+    ) where++import Control.Applicative+import Data.Monoid+import Data.Foldable+import Data.Traversable+-- import Data.Data+-- import Data.Typeable+import Numeric.AD.Internal+import Numeric.AD.Internal.Comonad+import Language.Haskell.TH++infixl 3 :|++data Iterated f a = a :| f (Iterated f a)+--    deriving (Data, Typeable)++instance Functor f => Functor (Iterated f) where+    fmap f (a :| as) = f a :| fmap f <$> as++instance Functor f => Copointed (Iterated f) where+    extract (a :| _) = a++instance Functor f => Comonad (Iterated f) where+    duplicate aas@(_ :| as) = aas :| duplicate <$> as+    extend f aas@(_ :| as) = f aas :| extend f <$> as++instance Foldable f => Foldable (Iterated f) where+    foldMap f (a :| as) = f a `mappend` foldMap (foldMap f) as++instance Traversable f => Traversable (Iterated f) where+    traverse f (a :| as) = (:|) <$> f a <*> traverse (traverse f) as++-- tails of the f-branching stream comonad/cofree comonad+tailI :: (Iterated f a) -> f (Iterated f a)+tailI (_ :| as) = as++unfoldI :: Functor f => (a -> (b, f a)) -> a -> Iterated f b+unfoldI f a = h :| unfoldI f <$> t+    where+        (h, t) = f a++instance Primal (Iterated f) where+    primal (a :| _) = a++instance Mode f => Mode (Iterated f) where+    lift a = as+        where as = a :| lift as+    (a :| as) <+> (b :| bs) = (a + b) :| (as <+> bs)+    a *^ (b :| bs) = (a * b) :| (lift a *^ bs)+    (a :| as) ^* b = (a * b) :| (as ^* lift b)+    (a :| as) ^/ b = (a / b) :| (as ^/ lift b)++instance Mode f => Lifted (Iterated f) where+    showsPrec1 n (a :| _) = showsPrec n a+    (==!) = (==) `on` primal+    compare1 = compare `on` primal+    fromInteger1 a = fromInteger a :| fromInteger1 a+    (a :| as) +! (b :| bs) = (a + b) :| (as +! bs)+    (a :| as) -! (b :| bs) = (a - b) :| (as -! bs)+    (a :| as) *! (b :| bs) = (a * b) :| (as *! bs)+    negate1 (a :| as) = negate a :| negate1 as+    abs1 (a :| as) = abs a :| abs1 as+    signum1 (a :| as) = signum a :| signum1 as+    (a :| as) /! (b :| bs) = (a / b) :| (as /! bs)+    recip1 (a :| as) = recip a :| recip1 as+    fromRational1 n = fromRational n :| fromRational1 n+    toRational1 = toRational . primal+    pi1 = pi :| pi1+    exp1 (a :| as) = exp a :| exp1 as+    log1 (a :| as) = log a :| log1 as+    sqrt1 (a :| as) = sqrt a :| sqrt1 as+    (a :| as) **! (b :| bs) = (a ** b) :| (as **! bs)+    logBase1 (a :| as) (b :| bs) = logBase a b :| logBase1 as bs+    sin1 (a :| as) = sin a :| sin1 as+    cos1 (a :| as) = cos a :| cos1 as+    tan1 (a :| as) = tan a :| tan1 as+    asin1 (a :| as) = asin a :| asin1 as+    acos1 (a :| as) = acos a :| acos1 as+    atan1 (a :| as) = atan a :| atan1 as+    sinh1 (a :| as) = sinh a :| sinh1 as+    cosh1 (a :| as) = cosh a :| cosh1 as+    tanh1 (a :| as) = tanh a :| tanh1 as+    asinh1 (a :| as) = asinh a :| asinh1 as+    acosh1 (a :| as) = acosh a :| acosh1 as+    atanh1 (a :| as) = atanh a :| atanh1 as+    properFraction1 (a :| as) = (b, c :| cs)+        where+            (b, c) = properFraction a+            (_ :: Int, cs) = properFraction1 as+    truncate1 = truncate . primal+    round1 = round . primal+    ceiling1 = ceiling . primal+    floor1  = floor . primal+    floatRadix1 = floatRadix . primal+    floatDigits1 = floatDigits . primal+    floatRange1 = floatRange . primal+    decodeFloat1 = decodeFloat . primal+    encodeFloat1 m e = encodeFloat m e :| encodeFloat1 m e+    exponent1 = exponent . primal+    significand1 (a :| as) = significand a :| significand1 as+    scaleFloat1 n (a :| as) = scaleFloat n a :| scaleFloat1 n as+    isNaN1 = isNaN . primal+    isInfinite1 = isInfinite . primal+    isDenormalized1 = isDenormalized . primal+    isNegativeZero1 = isNegativeZero . primal+    isIEEE1 = isIEEE . primal+    atan21 (a :| as) (b :| bs) = atan2 a b :| atan21 as bs+    succ1 (a :| as) = succ a :| succ1 as+    pred1 (a :| as) = pred a :| pred1 as+    toEnum1 n = toEnum n :| toEnum1 n+    fromEnum1 = fromEnum . primal+    enumFrom1 = error "TODO"+    enumFromThen1 = error "TODO"+    enumFromTo1 = error "TODO"+    enumFromThenTo1 = error "TODO"+    minBound1 = minBound :| minBound1+    maxBound1 = maxBound :| maxBound1+    -- TODO:++-- instance (Mode f, Foo a) => Foo (Iterated f) ...+deriveNumeric+    (classP (mkName "Mode") [varT $ mkName "f"]:)+    (conT (mkName "Iterated") `appT` varT (mkName "f"))
Numeric/AD/Internal/Reverse.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, TypeFamilies, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, FlexibleContexts, TemplateHaskell, UndecidableInstances #-}-{-# OPTIONS_HADDOCK hide, prune #-}+-- {-# OPTIONS_HADDOCK hide, prune #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal.Reverse
Numeric/AD/Internal/Stream.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE TypeOperators, TemplateHaskell, ScopedTypeVariables #-}-{-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE StandaloneDeriving, FlexibleContexts, UndecidableInstances #-}+-- {-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- | -- Module      :  Numeric.AD.Internal.Stream@@ -9,136 +9,56 @@ -- Stability   :  experimental -- Portability :  GHC only ----- A cofree comonad/f-branching stream  for use in returning towers of gradients. --- -----------------------------------------------------------------------------  module Numeric.AD.Internal.Stream -    ( (:>)(..)-    , Comonad(..)-    , unfold-    , tails+    ( Stream(..)+    , unfoldS+    , headS+    , tailS     ) where  import Control.Applicative import Data.Monoid import Data.Foldable import Data.Traversable-import Numeric.AD.Internal-import Language.Haskell.TH+-- import Data.Data+-- import Data.Typeable+import Numeric.AD.Internal.Comonad -infixl 3 :<, :>+infixl 3 :< -class Functor f => Comonad f where-    extract :: (f :> a) -> a-    duplicate :: (f :> a) -> (f :> (f :> a))-    extend :: ((f :> a) -> b) -> (f :> a) -> (f :> b)+data Stream f a = a :< f (Stream f a) -data (f :> a) = a :< f (f :> a)+deriving instance (Show a, Show (f (Stream f a))) => Show (Stream f a) -instance Functor f => Functor ((:>)f) where+-- TODO: Data, Typeable++instance Functor f => Functor (Stream f) where     fmap f (a :< as) = f a :< fmap f <$> as -instance Functor f => Comonad ((:>) f) where+instance Functor f => Copointed (Stream f) where     extract (a :< _) = a++instance Functor f => Comonad (Stream f) where     duplicate aas@(_ :< as) = aas :< duplicate <$> as     extend f aas@(_ :< as) = f aas :< extend f <$> as -instance Foldable f => Foldable ((:>) f) where+instance Foldable f => Foldable (Stream f) where     foldMap f (a :< as) = f a `mappend` foldMap (foldMap f) as -instance Traversable f => Traversable ((:>) f) where+instance Traversable f => Traversable (Stream f) where     traverse f (a :< as) = (:<) <$> f a <*> traverse (traverse f) as +headS :: Stream f a -> a+headS (a :< _) = a+ -- tails of the f-branching stream comonad/cofree comonad-tails :: (f :> a) -> f (f :> a)-tails (_ :< as) = as+tailS :: Stream f a -> f (Stream f a)+tailS (_ :< as) = as -unfold :: Functor f => (a -> (b, f a)) -> a -> (f :> b)-unfold f a = h :< unfold f <$> t +unfoldS :: Functor f => (a -> (b, f a)) -> a -> Stream f b+unfoldS f a = h :< unfoldS f <$> t      where         (h, t) = f a -instance Primal ((:>) f) where-    primal (a :< _) = a--instance Mode f => Mode ((:>) f) where-    lift a = as-        where as = a :< lift as-    (a :< as) <+> (b :< bs) = (a + b) :< (as <+> bs)-    a *^ (b :< bs) = (a * b) :< (lift a *^ bs)-    (a :< as) ^* b = (a * b) :< (as ^* lift b)-    (a :< as) ^/ b = (a / b) :< (as ^/ lift b)--instance Mode f => Lifted ((:>) f) where-    showsPrec1 n (a :< _) = showsPrec n a-    (==!) = (==) `on` primal-    compare1 = compare `on` primal-    fromInteger1 a = fromInteger a :< fromInteger1 a-    (a :< as) +! (b :< bs) = (a + b) :< (as +! bs)-    (a :< as) -! (b :< bs) = (a - b) :< (as -! bs)-    (a :< as) *! (b :< bs) = (a * b) :< (as *! bs)-    negate1 (a :< as) = negate a :< negate1 as-    abs1 (a :< as) = abs a :< abs1 as-    signum1 (a :< as) = signum a :< signum1 as-    (a :< as) /! (b :< bs) = (a / b) :< (as /! bs)-    recip1 (a :< as) = recip a :< recip1 as-    fromRational1 n = fromRational n :< fromRational1 n-    toRational1 = toRational . primal-    pi1 = pi :< pi1-    exp1 (a :< as) = exp a :< exp1 as-    log1 (a :< as) = log a :< log1 as-    sqrt1 (a :< as) = sqrt a :< sqrt1 as-    (a :< as) **! (b :< bs) = (a ** b) :< (as **! bs)-    logBase1 (a :< as) (b :< bs) = logBase a b :< logBase1 as bs-    sin1 (a :< as) = sin a :< sin1 as-    cos1 (a :< as) = cos a :< cos1 as-    tan1 (a :< as) = tan a :< tan1 as-    asin1 (a :< as) = asin a :< asin1 as-    acos1 (a :< as) = acos a :< acos1 as-    atan1 (a :< as) = atan a :< atan1 as-    sinh1 (a :< as) = sinh a :< sinh1 as-    cosh1 (a :< as) = cosh a :< cosh1 as-    tanh1 (a :< as) = tanh a :< tanh1 as-    asinh1 (a :< as) = asinh a :< asinh1 as-    acosh1 (a :< as) = acosh a :< acosh1 as-    atanh1 (a :< as) = atanh a :< atanh1 as-    properFraction1 (a :< as) = (b, c :< cs) -        where-            (b, c) = properFraction a-            (_ :: Int, cs) = properFraction1 as-    truncate1 = truncate . primal-    round1 = round . primal-    ceiling1 = ceiling . primal -    floor1  = floor . primal -    floatRadix1 = floatRadix . primal-    floatDigits1 = floatDigits . primal-    floatRange1 = floatRange . primal-    decodeFloat1 = decodeFloat . primal-    encodeFloat1 m e = encodeFloat m e :< encodeFloat1 m e-    exponent1 = exponent . primal -    significand1 (a :< as) = significand a :< significand1 as-    scaleFloat1 n (a :< as) = scaleFloat n a :< scaleFloat1 n as-    isNaN1 = isNaN . primal -    isInfinite1 = isInfinite . primal-    isDenormalized1 = isDenormalized . primal -    isNegativeZero1 = isNegativeZero . primal -    isIEEE1 = isIEEE . primal -    atan21 (a :< as) (b :< bs) = atan2 a b :< atan21 as bs-    succ1 (a :< as) = succ a :< succ1 as-    pred1 (a :< as) = pred a :< pred1 as-    toEnum1 n = toEnum n :< toEnum1 n-    fromEnum1 = fromEnum . primal-    enumFrom1 = error "TODO"-    enumFromThen1 = error "TODO"-    enumFromTo1 = error "TODO"-    enumFromThenTo1 = error "TODO"-    minBound1 = minBound :< minBound1-    maxBound1 = maxBound :< maxBound1-    -- TODO:----- instance (Mode f, Foo a) => Foo ((:>) f) ...-deriveNumeric -    (classP (mkName "Mode") [varT $ mkName "f"]:) -    (conT (mkName ":>") `appT` varT (mkName "f")) 
+ Numeric/AD/Internal/Tensors.hs view
@@ -0,0 +1,62 @@+{-# LANGUAGE TypeOperators, TemplateHaskell, ScopedTypeVariables #-}+-- {-# OPTIONS_HADDOCK hide #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Numeric.AD.Internal.Tensors+-- Copyright   :  (c) Edward Kmett 2010+-- License     :  BSD3+-- Maintainer  :  ekmett@gmail.com+-- Stability   :  experimental+-- Portability :  GHC only+--+-----------------------------------------------------------------------------++module Numeric.AD.Internal.Tensors+    ( Tensors(..)+    , headT+    , tailT+    , tensors+    ) where++import Control.Applicative+import Data.Foldable+import Data.Traversable+import Data.Monoid+--import Data.Data+--import Data.Typeable+import Numeric.AD.Internal.Comonad+import Numeric.AD.Internal.Stream++infixl 3 :-++data Tensors f a = a :- Tensors f (f a)+-- TODO: deriving (Data, Typeable)++instance Functor f => Functor (Tensors f) where+    fmap f (a :- as) = f a :- fmap (fmap f) as++instance Foldable f => Foldable (Tensors f) where+    foldMap f (a :- as) = f a `mappend` foldMap (foldMap f) as++instance Traversable f => Traversable (Tensors f) where+    traverse f (a :- as) = (:-) <$> f a <*> traverse (traverse f) as++-- | While we can not be a 'Comonad' without a 'fzip'-like operation, you can use the+-- comonad for @'Stream' f a@ to manipulate a structure comonadically that you can turn +-- into 'Tensors'.+instance Functor f => Copointed (Tensors f) where+    extract (a :- _) = a++tailT :: Tensors f a -> Tensors f (f a)+tailT (_ :- as) = as+{-# INLINE tailT #-}++headT :: Tensors f a -> a+headT (a :- _) = a+{-# INLINE headT #-}++tensors :: Functor f => Stream f a -> Tensors f a+tensors (a :< as) = a :- distribute (tensors <$> as)+    where+        distribute :: Functor f => f (Tensors f a) -> Tensors f (f a)+        distribute x = (headT <$> x) :- distribute (tailT <$> x)
Numeric/AD/Internal/Tower.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Rank2Types, TypeFamilies, FlexibleContexts, UndecidableInstances, TemplateHaskell #-}-{-# OPTIONS_HADDOCK hide, prune #-}+-- {-# OPTIONS_HADDOCK hide, prune #-} ----------------------------------------------------------------------------- -- | -- Module      : Numeric.AD.Tower.Internal
− Numeric/AD/Stream.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE TypeOperators, TemplateHaskell, ScopedTypeVariables #-}--------------------------------------------------------------------------------- |--- Module      :  Numeric.AD.Stream--- Copyright   :  (c) Edward Kmett 2010--- License     :  BSD3--- Maintainer  :  ekmett@gmail.com--- Stability   :  experimental--- Portability :  GHC only------ A cofree comonad/f-branching stream  for use in returning towers of gradients. -----------------------------------------------------------------------------------module Numeric.AD.Stream -    ( (:>)(..)-    , Comonad(..)-    , unfold-    , tails-    ) where--import Numeric.AD.Internal.Stream
+ Numeric/AD/Tensors.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE TypeOperators, TemplateHaskell, ScopedTypeVariables #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Numeric.AD.Tensors+-- Copyright   :  (c) Edward Kmett 2010+-- License     :  BSD3+-- Maintainer  :  ekmett@gmail.com+-- Stability   :  experimental+-- Portability :  GHC only+--+-----------------------------------------------------------------------------++module Numeric.AD.Tensors+    ( +    -- * Tensors+      Tensors(..)+    , headT+    , tailT+    , tensors+    -- * f-Branching Streams+    , Stream(..)+    , headS+    , tailS+    , unfoldS+    -- * Comonads+    , Copointed(..)+    , Comonad(..)+    ) where++import Numeric.AD.Internal.Comonad+import Numeric.AD.Internal.Stream+import Numeric.AD.Internal.Tensors
ad.cabal view
@@ -1,5 +1,5 @@ Name:         ad-Version:      0.27+Version:      0.28 License:      BSD3 License-File: LICENSE Copyright:    (c) Edward Kmett 2010,@@ -31,14 +31,19 @@     Numeric.AD.Tower     Numeric.AD.Directed     Numeric.AD.Newton-    Numeric.AD.Stream+    Numeric.AD.Tensors+     Numeric.AD.Internal     Numeric.AD.Internal.Classes+    Numeric.AD.Internal.Comonad+    Numeric.AD.Internal.Stream+    Numeric.AD.Internal.Tensors+     Numeric.AD.Internal.Composition     Numeric.AD.Internal.Forward     Numeric.AD.Internal.Reverse     Numeric.AD.Internal.Tower-    Numeric.AD.Internal.Stream+    Numeric.AD.Internal.Iterated  Extra-Source-Files: TODO GHC-Options: -Wall