h*#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.19 ,(c) Conal Elliott and Justus Sagemller 2017BSD3,conal@conal.net, (@) jsagemue $ uni-koeln.de experimental Safe-Inferred&(c) Conal Elliott and Andy J Gill 2008BSD3 conal@conal.net, andygill@ku.edu experimental Safe-Inferred =>  vector-space1Monoid under group addition. Alternative to the Sum in  Data.Monoid , which uses  instead of . vector-spaceAdditive group v. vector-spaceThe zero element: identity for  vector-space Add vectors vector-spaceAdditive inverse vector-spaceGroup subtraction vector-spaceSum over several vectors  vector-space&Application a unary function inside a   vector-space'Application a binary function inside a    66&(c) Conal Elliott and Andy J Gill 2008BSD3 conal@conal.net, andygill@ku.edu experimental Safe-Inferred= - vector-spaceAdds inner (dot) products.. vector-spaceInner/dot product/ vector-space Vector space v.1 vector-spaceScale a vector2 vector-spaceVector divided by scalar3 vector-spaceVector multiplied by scalar4 vector-spaceLinear interpolation between a (when t==0) and b (when t==1).5 vector-spaceLinear combination of vectors6 vector-spaceSquare of the length of a vector. Sometimes useful for efficiency. See also 7.7 vector-spaceLength of a vector. See also 6.8 vector-spaceVector in same direction as given one but with length of one. Divides by zero for the zero vector.9 vector-space project u v computes the projection of v onto u. /0123-.456789 /0123-.456789.7172737(c) Conal Elliott 2008BSD3conal@conal.net experimental Safe-Inferred= h vector-space*Representation of the canonical basis for vi vector-spaceInterpret basis rep as a vectorj vector-spaceExtract coordinatesk vector-spaceExperimental version. More elegant definitions, and friendly to infinite-dimensional vector spaces.ghijk5lghijk5l&(c) Conal Elliott and Andy J Gill 2008BSD3 conal@conal.net, andygill@ku.edu experimental Safe-Inferred<= x vector-spaceAssociated vector spacey vector-spaceSubtract pointsz vector-spacePoint plus vector{ vector-spacePoint minus vector| vector-spaceSquare of the distance between two points. Sometimes useful for efficiency. See also }.} vector-space'Distance between two points. See also |.~ vector-space*Affine linear interpolation. Varies from p to p' as s varies from 0 to 1. See also 4 (on vector spaces). vector-spaceCompute an affine combination (weighted average) of points. The first element is used as origin and is weighted such that all coefficients sum to 1. For example,  affineCombo a [(0.3,b), (0.2,c)] is equal to -a .+^ (0.3 *^ (b .-. a) ^+^ 0.2 *^ (c .-. a))and if a, b, and c. were in a vector space would also be equal to "0.5 *^ a ^+^ 0.3 *^ b ^+^ 0.2 *^ c See also 5 (on vector spaces). wxzy{|}~ wxzy{|}~y6z6{6(c) Conal Elliott 2008-2016BSD3conal@conal.net experimental Safe-Inferred 6'  vector-spaceLinear map, represented as an optional memo-trie from basis to values, where & means the zero map (an optimization). vector-spaceAn optional additive value vector-space(Function (assumed linear) as linear map. vector-spaceApply a linear map to a vector. vector-space)Evaluate a linear map on a basis element. vector-space Handy for  and . vector-spaceIdentity linear map vector-spaceCompose linear maps vector-space:Apply a linear function to each element of a linear map. liftL f l == linear f *.* l, but works more efficiently. vector-spaceApply a linear binary function (not to be confused with a bilinear function) to each element of a linear map. vector-spaceApply a linear ternary function (not to be confused with a trilinear function) to each element of a linear map.19 (c) Conal Elliott 2008BSD3conal@conal.net experimental Safe-Inferred vector-space#Infinitely differentiable functions vector-spaceTower of derivatives. vector-spaceConstant derivative tower. vector-spaceMap a linear" function over a derivative tower. vector-spaceMap a linear" function over a derivative tower. vector-spaceApply a linear( binary function over derivative towers. vector-spaceApply a linear) ternary function over derivative towers. vector-spaceDifferentiable identity function. Sometimes called "the derivation variable" or similar, but it's not really a variable. vector-spaceEvery linear function has a constant derivative equal to the function itself (as a linear map). vector-spaceDifferentiable version of  vector-spaceDifferentiable version of  vector-spaceDerivative tower for applying a binary function that distributes over addition, such as multiplication. A bit weaker assumption than bilinearity. Is bilinearity necessary for correctness here? vector-space"Specialized chain rule. See also (\@.) vector-spaceSample the derivative at a basis element. Optimized for partial application to save work for non-scalar derivatives.9 40 (c) Conal Elliott 2008BSD3conal@conal.net experimental Safe-Inferred(c) Conal Elliott 2008BSD3conal@conal.net experimental Safe-Inferred  vector-space,Cross product of various forms of 3D vectors vector-space,Cross product of various forms of 2D vectors vector-spaceHomogeneous triple vector-spaceHomogeneous pair vector-space Singleton vector-space8Thing with a normal vector (not necessarily normalized). vector-space$Normalized normal vector. See also cross.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (vector-space-0.19-9A7jhKTlCVjLn8RtyrDybEData.AdditiveGroupData.VectorSpace Data.BasisData.AffineSpaceData.LinearMapData.Maclaurin Data.Cross vector-spaceData.VectorSpace.GenericData.DerivativeSumgetSum AdditiveGroupzeroV^+^negateV^-^sumVinSuminSum2$fAdditiveGroup:*:$fAdditiveGroupM1$fAdditiveGroupK1$fAdditiveGroup:->:$fAdditiveGroupMaybe$fAdditiveGroupFUN$fAdditiveGroup(,,,)$fAdditiveGroup(,,)$fAdditiveGroup(,)$fAdditiveGroupComplex$fAdditiveGroupRatio$fAdditiveGroupCDouble$fAdditiveGroupCFloat$fAdditiveGroupCIntMax$fAdditiveGroupCLLong$fAdditiveGroupCLong$fAdditiveGroupCShort$fAdditiveGroupCInt$fAdditiveGroupCSChar$fAdditiveGroupDouble$fAdditiveGroupFloat$fAdditiveGroupInteger$fAdditiveGroupInt$fAdditiveGroup()$fAdditiveGroupSum $fMonoidSum$fSemigroupSum$fApplicativeSum $fFunctorSum$fEqSum$fOrdSum $fReadSum $fShowSum $fBoundedSum InnerSpace<.> VectorSpaceScalar*^^/^*lerp linearCombo magnitudeSq magnitude normalizedproject$fVectorSpace:*:$fVectorSpaceM1$fVectorSpaceK1$fVectorSpace:->:$fVectorSpaceFUN$fVectorSpaceMaybe$fVectorSpace(,,,)$fVectorSpace(,,)$fVectorSpace(,)$fVectorSpaceComplex$fVectorSpaceRatio$fVectorSpaceCFloat$fVectorSpaceCDouble$fVectorSpaceCIntMax$fVectorSpaceCLLong$fVectorSpaceCLong$fVectorSpaceCShort$fVectorSpaceCInt$fVectorSpaceCSChar$fVectorSpaceFloat$fVectorSpaceDouble$fVectorSpaceInteger$fVectorSpaceInt$fInnerSpace:*:$fInnerSpaceM1$fInnerSpaceK1$fInnerSpaceMaybe$fInnerSpaceFUN$fInnerSpace(,,,)$fInnerSpace(,,)$fInnerSpace(,)$fInnerSpaceComplex$fInnerSpaceRatio$fInnerSpaceCFloat$fInnerSpaceCDouble$fInnerSpaceCIntMax$fInnerSpaceCLLong$fInnerSpaceCLong$fInnerSpaceCShort$fInnerSpaceCInt$fInnerSpaceCSChar$fInnerSpaceFloat$fInnerSpaceDouble$fInnerSpaceInteger$fInnerSpaceIntHasBasisBasis basisValue decompose decompose' recompose $fHasBasis:*: $fHasBasisM1 $fHasBasisK1$fHasBasis(,,) $fHasBasis(,)$fHasBasisRatio$fHasBasisCDouble$fHasBasisDouble$fHasBasisCFloat$fHasBasisFloat AffineSpaceDiff.-..+^.-^ distanceSqdistancealerp affineCombo$fAffineSpaceM1$fAffineSpaceK1$fHasBasisGenericDiff$fInnerSpaceGenericDiff$fVectorSpaceGenericDiff$fAdditiveGroupGenericDiff$fAffineSpaceFUN$fAffineSpace(,,)$fAffineSpace(,)$fAffineSpaceRatio$fAffineSpaceCFloat$fAffineSpaceCDouble$fAffineSpaceCIntMax$fAffineSpaceCLLong$fAffineSpaceCLong$fAffineSpaceCShort$fAffineSpaceCInt$fAffineSpaceCSChar$fAffineSpaceFloat$fAffineSpaceDouble$fAffineSpaceInteger$fAffineSpaceInt$fAffineSpace:*: $fHasBasisAffineDiffProductSpace#$fAffineSpaceAffineDiffProductSpace"$fInnerSpaceAffineDiffProductSpace#$fVectorSpaceAffineDiffProductSpace%$fAdditiveGroupAffineDiffProductSpace$fGenericAffineDiffProductSpace$fGenericGenericDiff:-*exlLexrLforkLfirstLsecondLinlLinrLjoinLlinearinLMapinLMap2inLMap3lapplyatBasisidL*.*liftMSliftMS2liftMS3liftLliftL2liftL3$fVectorSpace:-*$fAdditiveGroup:-*:~>:>DpowVal derivativepureDfmapD<$>>liftD2liftD3idDlinearDfstDsndDdistrib>-< derivAtBasispairDunpairDtripleD untripleD $fFloating:>$fFractional:>$fNum:>$fInnerSpace:>$fVectorSpace:>$fAdditiveGroup:>$fOrd:>$fOrdB:>$fIfB:>$fEq:>$fShow:> HasCross3cross3 HasCross2cross2ThreeTwoOne HasNormal normalVecnormal$fHasNormal(,)$fHasNormal(,,) $fHasNormal:> $fHasCross2:>$fHasCross2(,)$fHasNormal:>0 $fHasCross3:>$fHasCross3(,,)VRepbaseGHC.NumNum GHC.MaybeNothingMSumlapply' Data.Tuplefstsnd