Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- data LinearMap v w where
- MatIdentity :: LinearMap b b
- Mat11 :: (Num a, ConjugateSymmetric a) => (Vector1 :*: Vector1) a -> LinearMap (Vector1 a) (Vector1 a)
- Mat12 :: (Num a, ConjugateSymmetric a) => (Vector1 :*: Vector2) a -> LinearMap (Vector1 a) (Vector2 a)
- Mat13 :: (Num a, ConjugateSymmetric a) => (Vector1 :*: Vector3) a -> LinearMap (Vector1 a) (Vector3 a)
- Mat14 :: (Num a, ConjugateSymmetric a) => (Vector1 :*: Vector4) a -> LinearMap (Vector1 a) (Vector4 a)
- Mat21 :: (Num a, ConjugateSymmetric a) => (Vector2 :*: Vector1) a -> LinearMap (Vector2 a) (Vector1 a)
- Mat22 :: (Num a, ConjugateSymmetric a) => (Vector2 :*: Vector2) a -> LinearMap (Vector2 a) (Vector2 a)
- Mat23 :: (Num a, ConjugateSymmetric a) => (Vector2 :*: Vector3) a -> LinearMap (Vector2 a) (Vector3 a)
- Mat24 :: (Num a, ConjugateSymmetric a) => (Vector2 :*: Vector4) a -> LinearMap (Vector2 a) (Vector4 a)
- Mat31 :: (Num a, ConjugateSymmetric a) => (Vector3 :*: Vector1) a -> LinearMap (Vector3 a) (Vector1 a)
- Mat32 :: (Num a, ConjugateSymmetric a) => (Vector3 :*: Vector2) a -> LinearMap (Vector3 a) (Vector2 a)
- Mat33 :: (Num a, ConjugateSymmetric a) => (Vector3 :*: Vector3) a -> LinearMap (Vector3 a) (Vector3 a)
- Mat34 :: (Num a, ConjugateSymmetric a) => (Vector3 :*: Vector4) a -> LinearMap (Vector3 a) (Vector4 a)
- Mat41 :: (Num a, ConjugateSymmetric a) => (Vector4 :*: Vector1) a -> LinearMap (Vector4 a) (Vector1 a)
- Mat42 :: (Num a, ConjugateSymmetric a) => (Vector4 :*: Vector2) a -> LinearMap (Vector4 a) (Vector2 a)
- Mat43 :: (Num a, ConjugateSymmetric a) => (Vector4 :*: Vector3) a -> LinearMap (Vector4 a) (Vector3 a)
- Mat44 :: (Num a, ConjugateSymmetric a) => (Vector4 :*: Vector4) a -> LinearMap (Vector4 a) (Vector4 a)
- MatInd :: (Num a, ConjugateSymmetric a, Universe row, Universe col) => ((->) row :*: (->) col) a -> LinearMap (row -> a) (col -> a)
- MatInd1 :: (Num a, ConjugateSymmetric a, Universe row) => ((->) row :*: Vector1) a -> LinearMap (row -> a) (Vector1 a)
- MatInd2 :: (Num a, ConjugateSymmetric a, Universe row) => ((->) row :*: Vector2) a -> LinearMap (row -> a) (Vector2 a)
- MatInd3 :: (Num a, ConjugateSymmetric a, Universe row) => ((->) row :*: Vector3) a -> LinearMap (row -> a) (Vector3 a)
- MatInd4 :: (Num a, ConjugateSymmetric a, Universe row) => ((->) row :*: Vector4) a -> LinearMap (row -> a) (Vector4 a)
- Mat1Ind :: (Num a, ConjugateSymmetric a, Universe col) => (Vector1 :*: (->) col) a -> LinearMap (Vector1 a) (col -> a)
- Mat2Ind :: (Num a, ConjugateSymmetric a, Universe col) => (Vector2 :*: (->) col) a -> LinearMap (Vector2 a) (col -> a)
- Mat3Ind :: (Num a, ConjugateSymmetric a, Universe col) => (Vector3 :*: (->) col) a -> LinearMap (Vector3 a) (col -> a)
- Mat4Ind :: (Num a, ConjugateSymmetric a, Universe col) => (Vector4 :*: (->) col) a -> LinearMap (Vector4 a) (col -> a)
- Mat1D :: (Num a, ConjugateSymmetric a) => (Vector1 :*: Dual) (f a) -> LinearMap (Vector1 (f a)) (Dual (f a))
- Mat2D :: (Num a, ConjugateSymmetric a) => (Vector2 :*: Dual) (f a) -> LinearMap (Vector2 (f a)) (Dual (f a))
- Mat3D :: (Num a, ConjugateSymmetric a) => (Vector3 :*: Dual) (f a) -> LinearMap (Vector3 (f a)) (Dual (f a))
- Mat4D :: (Num a, ConjugateSymmetric a) => (Vector4 :*: Dual) (f a) -> LinearMap (Vector4 (f a)) (Dual (f a))
- MatD1 :: (Scalar a ~ a, Num a, ConjugateSymmetric a) => (Dual :*: Vector1) a -> LinearMap (Dual a) (Vector1 a)
- MatD2 :: (Scalar a ~ a, Num a, ConjugateSymmetric a) => (Dual :*: Vector2) a -> LinearMap (Dual a) (Vector2 a)
- MatD3 :: (Scalar a ~ a, Num a, ConjugateSymmetric a) => (Dual :*: Vector3) a -> LinearMap (Dual a) (Vector3 a)
- MatD4 :: (Scalar a ~ a, Num a, ConjugateSymmetric a) => (Dual :*: Vector4) a -> LinearMap (Dual a) (Vector4 a)
- MatDD :: (Scalar (f a) ~ f a, Num a, ConjugateSymmetric a) => (Dual :*: Dual) (f a) -> LinearMap (Dual (f a)) (Dual (f a))
- MatSS :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Stream :*: Stream) a -> LinearMap (Stream a) (Stream a)
- MatS1 :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Stream :*: Vector1) a -> LinearMap (Stream a) (Vector1 a)
- MatS2 :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Stream :*: Vector2) a -> LinearMap (Stream a) (Vector2 a)
- MatS3 :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Stream :*: Vector3) a -> LinearMap (Stream a) (Vector3 a)
- MatS4 :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Stream :*: Vector4) a -> LinearMap (Stream a) (Vector4 a)
- Mat1S :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Vector1 :*: Stream) a -> LinearMap (Vector1 a) (Stream a)
- Mat2S :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Vector2 :*: Stream) a -> LinearMap (Vector2 a) (Stream a)
- Mat3S :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Vector3 :*: Stream) a -> LinearMap (Vector3 a) (Stream a)
- Mat4S :: (Num a, ConjugateSymmetric a, InnerProductSpace (Stream a)) => (Vector4 :*: Stream) a -> LinearMap (Vector4 a) (Stream a)
- linear_map :: Linearizable LinearMap (:*:) f g a => (f :*: g) a -> f a :-> g a
- tensor :: (Functor f, Functor g, Linearizable arr (:*:) f g c) => ((a, b) -> c) -> (f a, g b) -> arr (f c) (g c)
- lin_tensor :: (Linearizable arr (:*:) f g (h b), LinearTransform ((,) a) h c, Functor f, Functor g) => ((a, c) :-> h b) -> (f a, g c) -> arr (f (h b)) (g (h b))
- linear_map_negate :: (Num a, Functor f, Functor g, Linearizable LinearMap (:*:) f g a) => (f a :-> g a) -> f a :-> g a
- linear_map_plus :: (Num a, Applicative f, Applicative g, Linearizable LinearMap (:*:) f g a) => (f a :-> g a) -> (f a :-> g a) -> f a :-> g a
- linear_map_scalar_product :: (Num a, Linearizable LinearMap (:*:) f g a, Functor g, Functor f) => a -> (f a :-> g a) -> f a :-> g a
- data Dual v where
- type (:->) a b = LinearMap a b
- data v :<->: w where
- type End a = LinearMap a a
- type Aut a = a :<->: a
- type GL a = a :<->: a
- compose_linear :: (v :-> w) -> (u :-> v) -> u :-> w
- appLinear :: LinearTransform f g a => (f a :-> g b) -> f a -> g b
- linear_matrix_multiply :: (SupportsMatrixMultiplication g h f a, Linearizable LinearMap (:*:) h f a, Linearizable LinearMap (:*:) g h a, Linearizable LinearMap (:*:) g f a) => (g a :-> h a) -> (h a :-> f a) -> g a :-> f a
- is_invertible_matrix :: (Eq a, Num a, Traceable m a, LinearTraceable LinearMap m a) => (m a :-> m a) -> Bool
- invert_matrix :: (Eq a, Num a, Invertible m a, LinearInvertible LinearMap m a) => (m a :-> m a) -> Maybe (m a :-> m a)
- diagonal_matrix :: (Transposable m m a, LinearTransform m m a, Diagonalizable m a, Linearizable LinearMap (:*:) m m a) => m a -> m a :-> m a
- linear_inverse_impl :: (Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) g f a, Transposable f g a) => (f :*: g) a -> g a :-> f a
- lin_outer :: (Linearizable LinearMap (:*:) f g a, Diagonalizable f a, InnerProductSpace (f a), VectorSpace (g a), Scalar (f a) ~ Scalar (g a)) => f a -> g a -> f a :-> g a
- matrixLin :: (LinearTransform f g c, Linearizable LinearMap (:*:) f g c) => (a -> b -> c) -> f a -> g b -> f c :-> g c
- linmatrix :: (Functor g, Functor f, LinearTransform ((,) (t a)) v (u a), Linearizable LinearMap (:*:) f g (v (u a))) => ((t a, u a) :-> v (u a)) -> (f (t a), g (u a)) -> f (v (u a)) :-> g (v (u a))
- arrmatrix :: (FunctorArrow f arr arr, FunctorArrow g arr arr, ArrowApply arr) => arr (a, b) c -> arr (f a, g b) ((f :*: g) c)
- bilinear :: (VectorSpace ((f :*: g) a), VectorSpace (g a), a ~ Scalar (g a), Indexable f a, Indexable g a, Integral a, Linearizable LinearMap (:*:) f g a) => (f a -> f a -> g a) -> f a -> f a -> f a :-> g a
- dual_map :: (Transposable g f a, Linearizable arr1 (:*:) f g a, Linearizable arr2 (:*:) g f a) => arr2 (g a) (f a) -> arr1 (f a) (g a)
- linear_applicative :: (LinearTransform f g c, Linearizable LinearMap (:*:) f g c) => f (b -> c) -> g b -> f c :-> g c
- linear_apply_map :: (LinearTransform f g (u c), LinearTransform t u c, Linearizable LinearMap (:*:) f g (u c)) => f (t c :-> u c) -> g (t c) -> f (u c) :-> g (u c)
- linear_proof :: LinearMap v w -> Scalar v :~: Scalar w
- (-!<) :: LinearTransform f g a => (f a :-> g a) -> f a -> g a
- fromLinear_impl :: Diagonalizable f a => (f a :-> g a) -> (f :*: g) a
- linear_apply :: (LinearTransform m n a, Linearizable arr (:*:) m n a) => arr (m a) (n a) -> m a -> n a
- linear_apply_inverse :: (LinearTransform m n a, Linearizable arr (:*:) m n a) => arr (m a) (n a) -> n a -> m a
- (-!!<) :: LinearTransform f Vector1 r => (f r :-> Vector1 r) -> f r -> r
- linear_outer_product :: (LinearTransform f g a, InnerProductSpace (v a), Linearizable LinearMap (:*:) f g a, Scalar (v a) ~ a) => f (v a) -> g (v a) -> f a :-> g a
- mapInnerProduct :: (InnerProductSpace (n a), LinearTransform m n a) => (m a :-> n a) -> m a -> m a -> Scalar (n a)
- linear_invert :: (Transposable g f a, Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) g f a) => (g a :-> f a) -> f a :-> g a
- (<<*>>) :: (LinearTransform f g a, InnerProductSpace (v a), Scalar (v a) ~ a, Linearizable LinearMap (:*:) f g a) => f (v a) -> g (v a) -> f a :-> g a
- matrix_equalizer :: (Eq (Scalar (h a)), Eq (g (f a)), Linearizable LinearMap (:*:) h f a, Linearizable LinearMap (:*:) g h a, SupportsMatrixMultiplication g h f a, Applicative g, Applicative f, Foldable g, Foldable f) => (g a :-> h a) -> (g a :-> h a) -> Prop (h a :-> f a)
- cov1 :: (ConjugateSymmetric a, Num a) => Vector1 (Dual (Vector1 a))
- directional_derivative_prim :: (Infinitesimal str (Scalar (v a)), Fractional (Scalar (v a)), VectorSpace (v a)) => v a -> (v a -> Scalar (v a)) -> v a -> Closure str (Scalar (v a))
- data Tangent str p where
- vector_directional_derivative_prim :: (Infinitesimal str (Scalar v), VectorSpace a, VectorSpace v, Limiting str a, Scalar a ~ Scalar v) => v -> (v -> a) -> v -> Tangent str (v, a)
- directional_derivative_impl :: (LinearTransform v Vector1 a, Closed a, VectorSpace (v a), Linearizable LinearMap (:*:) v Vector1 a, Diagonalizable v a, Scalar (v a) ~ a) => v a -> Dual (v a) -> Dual (v a)
- vector_directional_derivative :: (Linearizable LinearMap (:*:) f g a, LinearTransform f g a, Diagonalizable f a, Closed (g a), VectorSpace (g a), VectorSpace (f a), Infinitesimal Stream (Scalar (f a))) => f a -> (f a :-> g a) -> f a :-> g a
- directional_derivative_impl_ :: (a ~ Scalar (v a), LinearTransform v v a, InnerProductSpace (v a), Linearizable LinearMap (:*:) v Vector1 a, Diagonalizable v a, Dualizable (v a) d, VectorDerivative (v a) d LinearMap) => v a -> d (v a) -> d (v a)
- partial_derivate1x :: (Closed a, Num a, ConjugateSymmetric a) => Dual (Vector1 a) -> Dual (Vector1 a)
- cov2 :: (ConjugateSymmetric a, Num a) => Vector2 (Dual (Vector2 a))
- divergence2 :: (ConjugateSymmetric a, Closed a, Fractional a) => LinearMap (Vector2 a) (Vector2 a) -> Dual (Vector2 a)
- linear_dual_2x :: (Dualizable (f v) d, Diagonalizable f v, LinearTransform f Vector2 v, Linearizable LinearMap (:*:) f Vector1 v) => LinearMap (f v) (Vector2 v) -> d (f v)
- linear_dual_2y :: (Dualizable (f v) d, Diagonalizable f v, LinearTransform f Vector2 v, Linearizable LinearMap (:*:) f Vector1 v) => LinearMap (f v) (Vector2 v) -> d (f v)
- grad2 :: (ConjugateSymmetric a, Closed a, Fractional a) => Dual (Vector2 a) -> LinearMap (Vector2 a) (Vector2 a)
- curl2 :: (ConjugateSymmetric a, VectorSpace a, Fractional a, Closed a) => LinearMap (Vector2 a) (Vector2 a) -> LinearMap (Vector2 a) (Vector2 a)
- cov3 :: (Num a, ConjugateSymmetric a) => Vector3 (Dual (Vector3 a))
- vector3_to_vec3 :: Vector3 a -> ThreeD -> a
- vec3_iso_obj :: Vector3 ThreeD
- vec3_to_vector3 :: (ThreeD -> a) -> Vector3 a
- vector3_natiso :: (->) ThreeD :<~>: Vector3
- default_vector_laplace :: (VectorDerivative v Dual arr, VectorCrossProduct v arr, VectorSpace (arr v v)) => arr v v -> arr v v
- vector_laplace3 :: (a ~ Scalar (f a), VectorDerivative (f a) Dual LinearMap, LinearTransform f Vector3 a, LinearTransform f Vector1 a, Diagonalizable f a, Dualizable (f a) Dual, Linearizable LinearMap (:*:) f Vector3 a, Linearizable LinearMap (:*:) f Vector1 a) => (f a :-> Vector3 a) -> f a :-> Vector3 a
- divergence3 :: (Closed a, ConjugateSymmetric a, Num a) => (Vector3 a :-> Vector3 a) -> Dual (Vector3 a)
- grad3 :: (Num s, ConjugateSymmetric s, Closed s) => Dual (Vector3 s) -> Vector3 s :-> Vector3 s
- laplace3 :: (Num a, ConjugateSymmetric a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a)
- curl3 :: (ConjugateSymmetric a, Num a, Closed a) => (Vector3 a :-> Vector3 a) -> Vector3 a :-> Vector3 a
- linear_dual_3x :: (Dualizable (f a) Dual, Diagonalizable f a, Linearizable LinearMap (:*:) f Vector1 a, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a)
- linear_dual_3y :: (Dualizable (f a) Dual, Diagonalizable f a, Linearizable LinearMap (:*:) f Vector1 a, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a)
- linear_dual_3z :: (Linearizable LinearMap (:*:) f Vector1 a, Diagonalizable f a, Dualizable (f a) Dual, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a)
- partial_derivate2x :: (Fractional a, Closed a, ConjugateSymmetric a) => Dual (Vector2 a) -> Dual (Vector2 a)
- partial_derivate2y :: (Fractional a, Closed a, ConjugateSymmetric a) => Dual (Vector2 a) -> Dual (Vector2 a)
- partial_derivate3x :: (ConjugateSymmetric a, Num a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a)
- partial_derivate3y :: (ConjugateSymmetric a, Num a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a)
- partial_derivate3z :: (ConjugateSymmetric a, Closed a, Num a) => Dual (Vector3 a) -> Dual (Vector3 a)
- del3 :: (ConjugateSymmetric v, Num v, Closed v) => Vector3 (Dual (Vector3 v) -> Dual (Vector3 v))
- del3_squared :: (Num v, Closed v, ConjugateSymmetric v) => (Vector3 :*: Vector3) (Dual (Vector3 v) -> Dual (Vector3 v))
- hessian3 :: (Closed v, ConjugateSymmetric v, Num v) => Dual (Vector3 v) -> (Vector3 :*: Vector3) (Dual (Vector3 v))
- dual_unitvector3 :: (Num a, ConjugateSymmetric a) => Vector3 a -> (Dual :*: Vector3) a
- del_vector3 :: Infinitesimal s a => (Vector3 a -> a) -> Vector3 a -> Vector3 (Closure s a)
- del_partial3 :: DifferentiallyClosed a => (Vector3 a -> a) -> Vector3 a -> Vector3 a
- partial_derivate_vector3 :: (Infinitesimal s (Scalar a), VectorSpace a, Num a, Limiting s a) => (Vector3 (Scalar a) -> a) -> Vector3 (Scalar a) -> Closure s (Vector3 a)
- pderive3 :: (Closed a, Num a) => Vector3 (a -> a) -> Vector3 a -> Vector3 a
- vector_field_derivate :: (Closed a, Num a) => (Vector3 a -> a) -> Vector3 a -> Vector3 a
- mat_bind :: Monad f => (f :*: g) a -> (g a -> (f :*: h) b) -> (f :*: h) b
- cells_linear :: Linearizable LinearMap (:*:) f g a => (f a :-> g a) -> f (g a)
- lin_bind :: (Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) f h b, Monad f) => (f a :-> g a) -> (g a -> f b :-> h b) -> f b :-> h b
- covector_impl :: (Linearizable LinearMap (:*:) f Vector1 b, Scalar (f b) ~ b, Diagonalizable f b) => (f b -> b) -> Dual (f b)
- linear_outer_product_ :: (Scalar (f a) ~ Scalar (g a), Linearizable arr ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) f g a, Diagonalizable f a, InnerProductSpace (f a), VectorSpace (g a)) => f a -> g a -> arr (f a) (g a)
- arr_linear :: (Linearizable arr (:*:) f g a, Diagonalizable f a) => (f a -> g a) -> arr (f a) (g a)
- arr_natural :: (Linearizable arr (:*:) f g a, Diagonalizable f a) => (f :~> g) -> arr (f a) (g a)
- bracketMap :: Dual (f a) -> f a :-> Vector1 (Scalar (f a))
- bracket_impl :: LinearTransform f Vector1 a => Dual (f a) -> f a -> a
Documentation
data LinearMap v w where Source #
Linear maps https://en.wikipedia.org/wiki/Linear_map
Instances
linear_map :: Linearizable LinearMap (:*:) f g a => (f :*: g) a -> f a :-> g a Source #
Specialization of linear
from Linearizable class to LinearMap.
converts from matrix representation to linear map representation.
tensor :: (Functor f, Functor g, Linearizable arr (:*:) f g c) => ((a, b) -> c) -> (f a, g b) -> arr (f c) (g c) Source #
lin_tensor :: (Linearizable arr (:*:) f g (h b), LinearTransform ((,) a) h c, Functor f, Functor g) => ((a, c) :-> h b) -> (f a, g c) -> arr (f (h b)) (g (h b)) Source #
linear_map_negate :: (Num a, Functor f, Functor g, Linearizable LinearMap (:*:) f g a) => (f a :-> g a) -> f a :-> g a Source #
linear_map_plus :: (Num a, Applicative f, Applicative g, Linearizable LinearMap (:*:) f g a) => (f a :-> g a) -> (f a :-> g a) -> f a :-> g a Source #
linear_map_scalar_product :: (Num a, Linearizable LinearMap (:*:) f g a, Functor g, Functor f) => a -> (f a :-> g a) -> f a :-> g a Source #
Data type for dual vectors. https://en.wikipedia.org/wiki/Dual_space
Instances
appLinear :: LinearTransform f g a => (f a :-> g b) -> f a -> g b Source #
linear_matrix_multiply :: (SupportsMatrixMultiplication g h f a, Linearizable LinearMap (:*:) h f a, Linearizable LinearMap (:*:) g h a, Linearizable LinearMap (:*:) g f a) => (g a :-> h a) -> (h a :-> f a) -> g a :-> f a Source #
is_invertible_matrix :: (Eq a, Num a, Traceable m a, LinearTraceable LinearMap m a) => (m a :-> m a) -> Bool Source #
invert_matrix :: (Eq a, Num a, Invertible m a, LinearInvertible LinearMap m a) => (m a :-> m a) -> Maybe (m a :-> m a) Source #
diagonal_matrix :: (Transposable m m a, LinearTransform m m a, Diagonalizable m a, Linearizable LinearMap (:*:) m m a) => m a -> m a :-> m a Source #
linear_inverse_impl :: (Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) g f a, Transposable f g a) => (f :*: g) a -> g a :-> f a Source #
lin_outer :: (Linearizable LinearMap (:*:) f g a, Diagonalizable f a, InnerProductSpace (f a), VectorSpace (g a), Scalar (f a) ~ Scalar (g a)) => f a -> g a -> f a :-> g a Source #
matrixLin :: (LinearTransform f g c, Linearizable LinearMap (:*:) f g c) => (a -> b -> c) -> f a -> g b -> f c :-> g c Source #
linmatrix :: (Functor g, Functor f, LinearTransform ((,) (t a)) v (u a), Linearizable LinearMap (:*:) f g (v (u a))) => ((t a, u a) :-> v (u a)) -> (f (t a), g (u a)) -> f (v (u a)) :-> g (v (u a)) Source #
arrmatrix :: (FunctorArrow f arr arr, FunctorArrow g arr arr, ArrowApply arr) => arr (a, b) c -> arr (f a, g b) ((f :*: g) c) Source #
bilinear :: (VectorSpace ((f :*: g) a), VectorSpace (g a), a ~ Scalar (g a), Indexable f a, Indexable g a, Integral a, Linearizable LinearMap (:*:) f g a) => (f a -> f a -> g a) -> f a -> f a -> f a :-> g a Source #
dual_map :: (Transposable g f a, Linearizable arr1 (:*:) f g a, Linearizable arr2 (:*:) g f a) => arr2 (g a) (f a) -> arr1 (f a) (g a) Source #
linear_applicative :: (LinearTransform f g c, Linearizable LinearMap (:*:) f g c) => f (b -> c) -> g b -> f c :-> g c Source #
linear_apply_map :: (LinearTransform f g (u c), LinearTransform t u c, Linearizable LinearMap (:*:) f g (u c)) => f (t c :-> u c) -> g (t c) -> f (u c) :-> g (u c) Source #
(-!<) :: LinearTransform f g a => (f a :-> g a) -> f a -> g a infixr 8 Source #
fromLinear_impl :: Diagonalizable f a => (f a :-> g a) -> (f :*: g) a Source #
linear_apply :: (LinearTransform m n a, Linearizable arr (:*:) m n a) => arr (m a) (n a) -> m a -> n a Source #
linear_apply_inverse :: (LinearTransform m n a, Linearizable arr (:*:) m n a) => arr (m a) (n a) -> n a -> m a Source #
(-!!<) :: LinearTransform f Vector1 r => (f r :-> Vector1 r) -> f r -> r infixr 8 Source #
for linear maps that produce scalars
linear_outer_product :: (LinearTransform f g a, InnerProductSpace (v a), Linearizable LinearMap (:*:) f g a, Scalar (v a) ~ a) => f (v a) -> g (v a) -> f a :-> g a Source #
mapInnerProduct :: (InnerProductSpace (n a), LinearTransform m n a) => (m a :-> n a) -> m a -> m a -> Scalar (n a) Source #
linear_invert :: (Transposable g f a, Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) g f a) => (g a :-> f a) -> f a :-> g a Source #
(<<*>>) :: (LinearTransform f g a, InnerProductSpace (v a), Scalar (v a) ~ a, Linearizable LinearMap (:*:) f g a) => f (v a) -> g (v a) -> f a :-> g a Source #
matrix_equalizer :: (Eq (Scalar (h a)), Eq (g (f a)), Linearizable LinearMap (:*:) h f a, Linearizable LinearMap (:*:) g h a, SupportsMatrixMultiplication g h f a, Applicative g, Applicative f, Foldable g, Foldable f) => (g a :-> h a) -> (g a :-> h a) -> Prop (h a :-> f a) Source #
directional_derivative_prim :: (Infinitesimal str (Scalar (v a)), Fractional (Scalar (v a)), VectorSpace (v a)) => v a -> (v a -> Scalar (v a)) -> v a -> Closure str (Scalar (v a)) Source #
https://en.wikipedia.org/wiki/Directional_derivative Note: the direction v is not guaranteed to be normalized.
data Tangent str p where Source #
Tangent | |
|
vector_directional_derivative_prim :: (Infinitesimal str (Scalar v), VectorSpace a, VectorSpace v, Limiting str a, Scalar a ~ Scalar v) => v -> (v -> a) -> v -> Tangent str (v, a) Source #
directional_derivative_impl :: (LinearTransform v Vector1 a, Closed a, VectorSpace (v a), Linearizable LinearMap (:*:) v Vector1 a, Diagonalizable v a, Scalar (v a) ~ a) => v a -> Dual (v a) -> Dual (v a) Source #
https://en.wikipedia.org/wiki/Directional_derivative Note: the direction v is not guaranteed to be normalized.
vector_directional_derivative :: (Linearizable LinearMap (:*:) f g a, LinearTransform f g a, Diagonalizable f a, Closed (g a), VectorSpace (g a), VectorSpace (f a), Infinitesimal Stream (Scalar (f a))) => f a -> (f a :-> g a) -> f a :-> g a Source #
directional_derivative_impl_ :: (a ~ Scalar (v a), LinearTransform v v a, InnerProductSpace (v a), Linearizable LinearMap (:*:) v Vector1 a, Diagonalizable v a, Dualizable (v a) d, VectorDerivative (v a) d LinearMap) => v a -> d (v a) -> d (v a) Source #
partial_derivate1x :: (Closed a, Num a, ConjugateSymmetric a) => Dual (Vector1 a) -> Dual (Vector1 a) Source #
divergence2 :: (ConjugateSymmetric a, Closed a, Fractional a) => LinearMap (Vector2 a) (Vector2 a) -> Dual (Vector2 a) Source #
linear_dual_2x :: (Dualizable (f v) d, Diagonalizable f v, LinearTransform f Vector2 v, Linearizable LinearMap (:*:) f Vector1 v) => LinearMap (f v) (Vector2 v) -> d (f v) Source #
linear_dual_2y :: (Dualizable (f v) d, Diagonalizable f v, LinearTransform f Vector2 v, Linearizable LinearMap (:*:) f Vector1 v) => LinearMap (f v) (Vector2 v) -> d (f v) Source #
grad2 :: (ConjugateSymmetric a, Closed a, Fractional a) => Dual (Vector2 a) -> LinearMap (Vector2 a) (Vector2 a) Source #
curl2 :: (ConjugateSymmetric a, VectorSpace a, Fractional a, Closed a) => LinearMap (Vector2 a) (Vector2 a) -> LinearMap (Vector2 a) (Vector2 a) Source #
vector3_to_vec3 :: Vector3 a -> ThreeD -> a Source #
vec3_to_vector3 :: (ThreeD -> a) -> Vector3 a Source #
default_vector_laplace :: (VectorDerivative v Dual arr, VectorCrossProduct v arr, VectorSpace (arr v v)) => arr v v -> arr v v Source #
vector_laplace3 :: (a ~ Scalar (f a), VectorDerivative (f a) Dual LinearMap, LinearTransform f Vector3 a, LinearTransform f Vector1 a, Diagonalizable f a, Dualizable (f a) Dual, Linearizable LinearMap (:*:) f Vector3 a, Linearizable LinearMap (:*:) f Vector1 a) => (f a :-> Vector3 a) -> f a :-> Vector3 a Source #
divergence3 :: (Closed a, ConjugateSymmetric a, Num a) => (Vector3 a :-> Vector3 a) -> Dual (Vector3 a) Source #
grad3 :: (Num s, ConjugateSymmetric s, Closed s) => Dual (Vector3 s) -> Vector3 s :-> Vector3 s Source #
laplace3 :: (Num a, ConjugateSymmetric a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a) Source #
curl3 :: (ConjugateSymmetric a, Num a, Closed a) => (Vector3 a :-> Vector3 a) -> Vector3 a :-> Vector3 a Source #
linear_dual_3x :: (Dualizable (f a) Dual, Diagonalizable f a, Linearizable LinearMap (:*:) f Vector1 a, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a) Source #
linear_dual_3y :: (Dualizable (f a) Dual, Diagonalizable f a, Linearizable LinearMap (:*:) f Vector1 a, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a) Source #
linear_dual_3z :: (Linearizable LinearMap (:*:) f Vector1 a, Diagonalizable f a, Dualizable (f a) Dual, LinearTransform f Vector3 a) => (f a :-> Vector3 a) -> Dual (f a) Source #
partial_derivate2x :: (Fractional a, Closed a, ConjugateSymmetric a) => Dual (Vector2 a) -> Dual (Vector2 a) Source #
partial_derivate2y :: (Fractional a, Closed a, ConjugateSymmetric a) => Dual (Vector2 a) -> Dual (Vector2 a) Source #
partial_derivate3x :: (ConjugateSymmetric a, Num a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a) Source #
partial_derivate3y :: (ConjugateSymmetric a, Num a, Closed a) => Dual (Vector3 a) -> Dual (Vector3 a) Source #
partial_derivate3z :: (ConjugateSymmetric a, Closed a, Num a) => Dual (Vector3 a) -> Dual (Vector3 a) Source #
del3 :: (ConjugateSymmetric v, Num v, Closed v) => Vector3 (Dual (Vector3 v) -> Dual (Vector3 v)) Source #
\[\nabla_3\], three-dimensional partial derivate. Use Applicative.<*> for applying it.
del3_squared :: (Num v, Closed v, ConjugateSymmetric v) => (Vector3 :*: Vector3) (Dual (Vector3 v) -> Dual (Vector3 v)) Source #
hessian3 :: (Closed v, ConjugateSymmetric v, Num v) => Dual (Vector3 v) -> (Vector3 :*: Vector3) (Dual (Vector3 v)) Source #
dual_unitvector3 :: (Num a, ConjugateSymmetric a) => Vector3 a -> (Dual :*: Vector3) a Source #
del_vector3 :: Infinitesimal s a => (Vector3 a -> a) -> Vector3 a -> Vector3 (Closure s a) Source #
this computes partial derivates of the scalar-valued 3D vector field along each variable simultaneously. \[\nabla f({\mathbb{v}}) = \frac{\partial \mathbb{f}}{\partial x}{\mathbb{i}} + \frac{\partial \mathbb{f}}{\partial y}{\mathbb{j}} + \frac{\partial \mathbb{f}}{\partial z}{\mathbb{k}}\]
del_partial3 :: DifferentiallyClosed a => (Vector3 a -> a) -> Vector3 a -> Vector3 a Source #
partial_derivate_vector3 :: (Infinitesimal s (Scalar a), VectorSpace a, Num a, Limiting s a) => (Vector3 (Scalar a) -> a) -> Vector3 (Scalar a) -> Closure s (Vector3 a) Source #
pderive3 :: (Closed a, Num a) => Vector3 (a -> a) -> Vector3 a -> Vector3 a Source #
partial derivate a function defined for each coordinate along each dimension of three-dimensional vector.
cells_linear :: Linearizable LinearMap (:*:) f g a => (f a :-> g a) -> f (g a) Source #
lin_bind :: (Linearizable LinearMap (:*:) f g a, Linearizable LinearMap (:*:) f h b, Monad f) => (f a :-> g a) -> (g a -> f b :-> h b) -> f b :-> h b Source #
covector_impl :: (Linearizable LinearMap (:*:) f Vector1 b, Scalar (f b) ~ b, Diagonalizable f b) => (f b -> b) -> Dual (f b) Source #
linear_outer_product_ :: (Scalar (f a) ~ Scalar (g a), Linearizable arr ((:*:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type) f g a, Diagonalizable f a, InnerProductSpace (f a), VectorSpace (g a)) => f a -> g a -> arr (f a) (g a) Source #
arr_linear :: (Linearizable arr (:*:) f g a, Diagonalizable f a) => (f a -> g a) -> arr (f a) (g a) Source #
arr_natural :: (Linearizable arr (:*:) f g a, Diagonalizable f a) => (f :~> g) -> arr (f a) (g a) Source #
bracket_impl :: LinearTransform f Vector1 a => Dual (f a) -> f a -> a Source #
Orphan instances
DifferentialOperator Vector3 Source # | |
Universe a => Foldable ((->) a) Source # | |
fold :: Monoid m => (a -> m) -> m # foldMap :: Monoid m => (a0 -> m) -> (a -> a0) -> m # foldMap' :: Monoid m => (a0 -> m) -> (a -> a0) -> m # foldr :: (a0 -> b -> b) -> b -> (a -> a0) -> b # foldr' :: (a0 -> b -> b) -> b -> (a -> a0) -> b # foldl :: (b -> a0 -> b) -> b -> (a -> a0) -> b # foldl' :: (b -> a0 -> b) -> b -> (a -> a0) -> b # foldr1 :: (a0 -> a0 -> a0) -> (a -> a0) -> a0 # foldl1 :: (a0 -> a0 -> a0) -> (a -> a0) -> a0 # elem :: Eq a0 => a0 -> (a -> a0) -> Bool # maximum :: Ord a0 => (a -> a0) -> a0 # minimum :: Ord a0 => (a -> a0) -> a0 # | |
(Fractional a, ConjugateSymmetric a) => Fractional ((Vector2 :*: Vector2) a) Source # | |