h$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                                                                                                                                                                                                          !(c) Justus Sagemller 2016GPL v3(@) jsag $ hvl.no experimentalportable Safe-Inferred5(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone'(-/2578>? manifoldsA pair of matching functions. The projection must be a left (but not necessarily right) inverse of the embedding, i.e. the cardinality of a: will have to be less or equal than the cardinality of b. manifoldsInjective embedding manifolds9Surjective projection. Must be left inverse of embedding.0000 Safe-Inferred-z manifolds6Simply a merge sort that discards equivalent elements. manifoldsLike :, but doesn't just discard duplicates but "merges" them.  cmp = cmp `` . manifolds!This function is also defined in GHC.Exts, but only in a version that requires ީ(ۨElog ۨ) function applications, as opposed to ۨ here. (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$'(->?h manifoldsBetter known as B@ (which is not a legal Haskell name), the ray of positive numbers (including zero, i.e. closed on one end).*)('+/.-,3210458769;:=@CBADHGFEIMLKJNRQPOSVUTWXYZ[\]^_`abcdefghijklmno8(c) Justus Sagemller 2021GPL v3(@) jsag $ hvl.no experimentalportableNone'(-./289>?v manifolds Inverse of ~', provided the space is connected. For p :: Interior m, q :: m and v = fromInterior p.--!q,  q ~ v D Right p &(up to floating-point). Similary, for b :: Boundary m and w = fromBoundary m.--!q,  q ~ w D Left (b, 0) z manifolds7The class of spaces with a displacement operation like , but there may be a limited range how far it is possible to move before leaving the space.Such spaces decompose into two  spaces: the { and the |.{ manifolds Subspace of m representing the set of points where it is possible to move at least a small distance in any direction (with ~) without leaving m.| manifoldsThe set of points where an infinitesimal movement is sufficient to leave m.~ manifoldsBoundary-aware pendant to .q manifoldsPoint p to project manifolds(Intended @course region@ representative r? on boundary @ we seek a point that is reachable from there. manifoldsNeedle r connecting r to projection of the p, and a measure d! of normal-distance such that r (r.+~^r) d == p.~ manifoldsStarting point p manifolds Displacement v manifoldsIf v is enough to leave m, yield the point where it does and what fraction of the length is still left (i.e. how much of v @pokes out of the space@). If it stays within the space, just give back the result.ptsrquyxwvz~}|{(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$'(-/29>?*V  manifoldsA connected manifold is one where any point can be reached by translation from any other point. manifoldsSafe version of . manifoldsA Riemannian metric assigns each point on a manifold a scalar product on the tangent space. Note that this association is not continuous, because the charts/tangent spaces in the bundle are a priori disjoint. However, for a proper Riemannian metric, all arising expressions of scalar products from needles between points on the manifold ought to be differentiable. manifoldsThe word @metric@ is used in the sense as in general relativity. Actually this is just the type of scalar products on the tangent space. The actual metric is the function x -> x -> Scalar (Needle x) defined by  \p q -> m  (p.-~!q)  manifoldsA co-needle can be understood as a @paper stack@, with which you can measure the length that a needle reaches in a given direction by counting the number of holes punched through them. manifoldsRequire some constraint on a manifold, and also fix the type of the manifold's underlying field. For example,  WithField B HilbertManifold v constrains v to be a real (i.e., -) Hilbert space. Note that for this to compile, you will in general need the -XLiberalTypeSynonyms extension (except if the constraint is an actual type class (like 6): only those can always be partially applied, for type- constraints this is by default not allowed). manifolds=A point on a manifold, as seen from a nearby reference point. manifoldsInstances of this class must be diffeomorphic manifolds, and even have canonically isomorphic tangent spaces, so that fromPackedVector . asPackedVector ::  x ->   defines a meaningful @representational identity@ between these spaces. manifoldsMust be compatible with the isomorphism on the tangent spaces, i.e.  locallyTrivialDiffeomorphism (p .+~^ v) D locallyTrivialDiffeomorphism p .+~^  v  manifoldsSee  and  for the methods. As a + we understand a pseudo-affine space whose  space is a well-behaved vector space that is isomorphic to all of the manifold's tangent spaces. It must also be an instance of the z? class with explicitly empty boundary (in other words, with no boundary).5 !"$#&%5$#&% "!6(c) Justus Sagemller 2020GPL v3(@) jsag $ hvl.no experimentalportableNone'(-./289>?++ pqrstuvwxyz{|}~+z{|}~uvwxypqrst (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone2?,u(c) Justus Sagemller 2018GPL v3(@) jsag $ hvl.no experimentalportableNone'(9>?. manifolds-Provided for convenience. Flipped synonym of *, restricted to manifolds without boundary (so the type of the whole can be inferred from its interior). manifoldsA zero vector in the fibre bundle at the given position. Intended to be used with tangent-modifying lenses such as . manifoldsex -> ey, ey -> ez, ez -> ex  5(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$'(->?/s manifoldsMust be nonzero.(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone'(-2>?42 manifolds-Oriented hyperplanes, navely generalised to  manifolds:  p w" represents the set of all points q such that (q.-~.p) ^<.> w D 0.In vector spaces this is indeed a hyperplane; for general manifolds it should behave locally as a plane, globally as an (nD1)-dimensional submanifold. manifolds&Some point lying in the desired plane. manifolds6Co-vector perpendicular to the plane. Must be nonzero. manifolds(Hyperplane to measure the distance from. manifoldsMetric to use for measuring that distance. This can only be accurate if the metric is valid both around the cut-plane's , and around the points you measure. (Strictly speaking, we would need parallel transport to ensure this). manifolds!Point to measure the distance to. manifoldsA signed number, giving the distance from plane to point with indication on which side the point lies. - if the point isn't reachable from the plane.*)('+/.-,3210458769;:=@CBADHGFEIMLKJNRQPOSVUTWXYZ[\]^_`abcdefghijklgfedcba`_^]\[ZY*)('+4WXlkji5876=DHGFE9;:@CBAIMLKJSVUTNRQPOh/.-,32100(c) Justus Sagemller 2013GPL v3(@) jsag $ hvl.no experimentalportableNone>5 !"$#&%*)('+/.-,3210458769;:=@CBADHGFEIMLKJNRQPOSVUTWXYZ[\]^_`abcdefghijkl(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone ->?7 manifoldsAn euclidean space is a real affine space whose tangent space is a Hilbert space. manifoldsThe ! class plus manifold constraints.  (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone'(-/25789>?9 manifoldsOne-dimensional manifolds, whose closure is homeomorpic to the unit interval. manifolds8Starting point; the interpolation will yield this at -1. manifoldsEnd point, for +1.5If the two points are actually connected by a path... manifolds...then this is the interpolation function. Attention: the type will change to Differentiable in the future.   (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$&'(->?:(c) Justus Sagemller 2016GPL v3(@) jsag $ hvl.no experimentalportableNone '(?;/ (c) Justus Sagemller 2016GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone&'(2589>?M manifoldsEssentially the same as (x,y)3, but not considered as a product topology. The * etc. instances just copy the topology of x , ignoring y. manifolds!Class of manifolds which can use  as a basic set type. This is easily possible for vector spaces with the default implementations. manifoldsa subShade ` b D True means a is fully contained in b, i.e. from  a p < 1 follows also minusLogOcclusion' b p < 1. manifolds Intersection between two shades. manifoldsIf p is in a (red) and  is in b (green), then p.+~^ is in convolveShade' a b (blue). Example: https://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/ShadeCombinations.ipynb#shadeConvolutions :images/examples/ShadeCombinations/2Dconvolution-skewed.png manifoldsAccess the center of a  or a . manifoldsCheck the statistical likelihood-density of a point being within a shade. This is taken as a normal distribution. manifoldsASCII version of . manifolds3Squash a shade down into a lower dimensional space. manifoldsInclude a shade in a higher-dimensional space. Notice that this behaves fundamentally different for  and . For 8, it gives a @flat image@ of the region, whereas for  it gives an @extrusion pillar@ pointing in the projection's orthogonal complement. manifoldsA @co-shade@ can describe ellipsoid regions as well, but unlike  it can be unlimited / infinitely wide in some directions. It does OTOH need to have nonzero thickness, which  needs not. manifoldsA  is a very crude description of a region within a manifold. It can be interpreted as either an ellipsoid shape, or as the Gaussian peak of a normal distribution (use  2http://hackage.haskell.org/package/manifold-random2 for actually sampling from that distribution).For a precise description of an arbitrarily-shaped connected subset of a manifold, there is Region., whose implementation is vastly more complex. manifoldsSpan a 4 from a center point and multiple deviation-vectors. manifoldsCombine two shades on independent subspaces to a shade with the same properties on the subspaces (see ) and no covariance. manifolds Similar to 2, but instead of expanding the shade, each vector  restricts it. Iff these form a orthogonal basis (in whatever sense applicable), then both methods will be equivalent. Note that  is only possible, as such, in an inner-product space; in general you need reciprocal vectors () to define a . manifoldsAttempt to find a  that describes the distribution of given points. At least in an affine space (and thus locally in any manifold), this can be used to estimate the parameters of a normal distribution from which some points were sampled. Note that some points will be @outside@ of the shade, as happens for a normal distribution with some statistical likelyhood. (Use  if you need to prevent that.)For  nonconnected manifolds it will be necessary to yield separate shades for each connected component. And for an empty input list, there is no shade! Hence the result type is a list. manifoldsLike , but ensure that all points are actually in the shade, i.e. if [ xA ex] is the result then metric (recipMetric ex) (p-xA) D 1 for all p in the list. manifoldsAttempt to reduce the number of shades to fewer (ideally, a single one). In the simplest cases these should guaranteed cover the same area; for non-flat manifolds it only works in a heuristic sense. manifoldsWeakened version of 1. What this function calculates is rather the  weighted mean of ellipsoid regions. If you interpret the shades as uncertain physical measurements with normal distribution, it gives the maximum-likelyhood result for multiple measurements of the same quantity. manifoldsHow near (inverse normalised distance, relative to shade expanse) two shades must be to be merged. If this is zero, any shades in the same connected region of a manifold are merged. manifolds A list of n shades. manifoldsm D n+ shades which cover at least the same area.55656 (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone'(/25678>?W  manifolds  x D (x,  x)  manifolds  x D [(x,  x)]  manifolds  x D Maybe (x,  x)  manifoldsHourglass as the geometric shape (two opposing ~conical volumes, sharing only a single point in the middle); has nothing to do with time. manifoldsBuild a quite nicely balanced tree from a cloud of points, on any real manifold. Example: https://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/Trees-and-Webs.ipynb#pseudorandomCloudTree 'images/examples/simple-2d-ShadeTree.png manifoldsThe leaves of a shade tree are numbered. For a given index, this function attempts to find the leaf with that ID, within its immediate environment. manifolds@Inverse indexing@ of a tree. This is roughly a nearest-neighbour search, but not guaranteed to give the correct result unless evaluated at the precise position of a tree leaf. manifolds Example: https://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/Trees-and-Webs.ipynb#pseudorandomCloudTree 9images/examples/TreesAndWebs/2D-scatter_twig-environs.png manifolds!U+6733 CJK UNIFIED IDEOGRAPH tree(. The main purpose of this is to give  a more concise  instance. manifoldsImitate the specialised ( structure with a simpler, generic tree. manifolds-Left (and, typically, also right) inverse of  fromLeafNodes. manifolds WRT union. manifoldsUnsafe: this assumes the direction information of both containers to be equivalent. manifoldsFor deciding (at the lowest level) what @close@ means; this is optional for any tree of depth >1. manifoldsThe tree to index into manifoldsPosition to look up manifoldsIndex of the leaf near to the query point, the @path@ of environment trees leading down to its position (in decreasing order of size), and actual position+info of the found node. (c) Justus Sagemller 2017GPL v3(@) jsag $ hvl.no experimentalportableNone'(25678?` manifoldsA  is almost, but not quite a mesh. It is a stongly connected@ directed graph, backed by a tree for fast nearest-neighbour lookup of points.@In general, there can be disconnected components, but every connected component is strongly connected. manifoldsPrefer picking neighbours at right angles to the currently-explored-boundary. This is needed while we still have to link to points in different spatial directions. manifoldsPrefer points directly opposed to the current boundary. This is useful when the system of directions is already complete and we want a nicely symmetric @ball@ of neighbours around each point. manifolds! from the co-Kleisli category of . manifolds A vector v for which we want dv .^v D 0. manifoldsA plane dvA and some vectors ws with dvA .^w D 0, which should also fulfill dv .^w D 0. manifolds The plane dv* fulfilling these properties, if possible. manifolds1Absolute-square distance (euclidean norm squared) manifoldsDirectional distance (distance from wall containing all already known neighbours) manifolds@Badness@ of this point as the next neighbour to link to. In gatherDirections mode this is large if the point is far away, but also if it is right normal to the wall. The reason we punish this is that adding two points directly opposed to each other would lead to an ill-defined wall orientation, i.e. wrong normals on the web boundary. manifolds1The node towards which the paths should converge. manifolds-The action which to traverse along each path. manifolds2Initialisation/evaluation for each path-traversal. (c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$'(-/2578>?b(c) Justus Sagemller 2017GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone-2?bNone'(?q manifoldsCategory of functions that, where defined, have an open region in which they are continuously differentiable. Hence RegionWiseDiff'able0. Basically these are the partial version of  PWDiffable.Though the possibility of undefined regions is of course not too nice (we don't need Java to demonstrate this with its everywhere-looming null values...), this category will propably be the @workhorse@ for most serious calculus applications, because it contains all the usual trig etc. functions and of course everything algebraic you can do in the reals.The easiest way to define ordinary functions in this category is hence with its AgentVal2ues, which have instances of the standard classes  through *. For instance, the following defines the binary entropy1 as a differentiable function on the interval ]0,1[: (it will actually know where it's defined and where not. And I don't mean you need to exhaustively -check all results...) hb :: RWDiffable B B B hb = alg (\p -> - p * logBase 2 p - (1-p) * logBase 2 (1-p) )  manifoldsA 8 needs to be associated with a certain reference point ( includes that point) to define a connected subset of a manifold. manifolds*A pathwise connected subset of a manifold m!, whose tangent space has scalar s. manifoldsThe category of differentiable functions between manifolds over scalar s. As you might guess, these offer automatic differentiation of sorts (basically, simple forward AD), but that's in itself is not really the killer feature here. More interestingly, we actually have the ( la Curry-Howard) proof built in: the function f has at x A derivative f'AA, if, for >0, there exists  such that |f x D (f xA + xEf'AA)| <  for all |x D xA| < .Observe that, though this looks quite similar to the standard definition of differentiability, it is not equivalent thereto @ in fact it does not prove any analytic properties at all. To make it equivalent, we need a lower bound on  : simply ? gives us continuity, and for continuous differentiability,  must grow at least like D for small . Neither of these conditions are enforced by the type system, but we do require them for any allowed values because these proofs are obviously tremendously useful @ for instance, you can have a root-finding algorithm and actually be sure you get all solutions correctly, not just some that are (hopefully) the closest to some reference point you'd need to laborously define!Unfortunately however, this also prevents doing any serious algebra with the category, because even something as simple as division necessary introduces singularities where the derivatives must diverge. Not to speak of many e.g. trigonometric functions that are undefined on whole regions. The  PWDiffable and  categories have explicit handling for those issues built in; you may simply use these categories even when you know the result will be smooth in your relevant domain (or must be, for e.g. physics reasons).((The implementation does not deal with  and  as difference-bounding reals, but rather as metric tensors which define a boundary by prohibiting the overlap from exceeding one. This makes the category actually work on general manifolds.)(c) Justus Sagemller 2015GPL v3(@) jsag $ hvl.no experimentalportableNone#$'(->?~. manifolds Represent a  by a smooth function which is positive within the region, and crosses zero at the boundary. manifoldsRequire the LHS to be defined before considering the RHS as result. This works analogously to the standard  ! method  ( ",) :: Maybe a -> Maybe b -> Maybe b Just _  " a = a _  " a = Nothing  manifoldsReturn the RHS, if it is less than the LHS. (Really the purpose is just to compare the values, but returning one of them allows chaining of comparison operators like in Python.) Note that less-than comparison is  http://www.paultaylor.eu/ASD/ equivalent to less-or-equal comparison, because there is no such thing as equality. manifolds.Return the RHS, if it is greater than the LHS. manifoldsTry the LHS, if it is undefined use the RHS. This works analogously to the standard  # method  ( $,) :: Maybe a -> Maybe a -> Maybe a Just x  $ _ = Just x _  $ a = a -Basically a weaker and agent-ised version of . manifoldsReplace the regions in which the first function is undefined with values from the second function. manifoldsLimit the number of steps taken in either direction. Note this will not cap the resolution but length of the discretised path. manifoldsParameter interval of interest. manifoldsInaccuracy allowance . manifoldsPath specification. manifoldsTrail of points along the path, such that a linear interpolation deviates nowhere by more as . manifolds*Max number of exploration steps per region manifoldsNeeded resolution of boundaries manifoldsFunction to investigate manifolds?0 manifoldsIf p5 is in all intersectors, it must also be in the hull. manifoldsConsider at each node not just the connections to already known neighbours, but also the connections to their neighbours. If these next-neighbours turn out to be actually situated closer, link to them directly. manifoldsFetch a point between any two neighbouring web nodes on opposite sides of the plane, and linearly interpolate the values onto the cut plane. manifolds! from the co-Kleisli category of . manifoldsCalculate a quadratic fit with uncertainty margin centered around the connection between any two adjacent nodes. In case of a regular grid (which we by no means require here!) this corresponds to the vector quantities of an Arakawa type C/D grid (cf. A. Arakawa, V.R. Lamb (1977): Computational design of the basic dynamical processes of the UCLA general circulation model) manifoldsUnder intersection. manifolds6Local scalar-product generator. You can always use  recipMetric .  (but this may give distortions compared to an actual Riemannian metric). manifolds Source tree. manifolds7Scalar product on the domain, for regularising the web. manifolds7Scalar product on the domain, for regularising the web. manifolds#Badness function for local results.11(c) Justus Sagemller 2017GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone-2?{(c) Justus Sagemller 2016GPL v3(@) jsag $ hvl.no experimentalportableNone'(-25678>?/ manifoldsAn ordinary differential equation is one that does not need any a-priori partial derivatives to compute the derivative for integration in some propagation direction. Classically, ODEs are usually understood as DifferentialEquation B B@ y, but actually x can at least be an arbitrary one-dimensional space (i.e. basically real intervals or <). In these cases, there is always only one partial derivative: that which we integrate over, in the only possible direction for propagation.  (c) Justus Sagemller 2018GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone -2567>?(c) Justus Sagemller 2018GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone-?L manifoldsA mesh that @covers@ the entire manifold, i.e. any point lies between some nodes of the mesh. manifoldsA mesh is a container data structure whose nodes are in some way located distributed over a manifold, and are aware of the topology by way of having access to their neighbours. Any such grid can be seen as a , but it may have extra structure (e.g. rectangular) in addition to that.  (c) Justus Sagemller 2018GPL v3(@) jsag $ hvl.no experimentalportableNonemnomno(c) Justus Sagemller 2018GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone'(2>? manifoldsObserve local, small variations (in the tangent space) of a coordinate. The idea is that )((p & coord+~c) D p) ^. delta coord D c, thus the name @@. Note however that this only holds exactly for flat spaces; in most manifolds it can (by design) only be understood in an asymptotic sense, i.e. used for evaluating directional derivatives of some function. In particular, delta  is unstable near the poles of a sphere, because it has to compensate for the sensitive rotation of the e unit vector. manifoldsA coordinate is a function that can be used both to determine the position of a point on a manifold along the one of some family of (possibly curved) axes on which it lies, and for moving the point along that axis. Basically, this is a ! and can indeed be used with the ,  and  operators.  m ~  m W In addition, each type may also have a way of identifying particular coordinate axes. This is done with $, which is what should be used for defining given coordinate axes. manifoldsTo give a custom type coordinate axes, first define an instance of this class. manifolds*A unique description of a coordinate axis. manifoldsHow to use a coordinate axis for points in the containing space. This is what  calls under the hood. manifoldsDelimiters for the possible values one may choose for a given coordinate, around a point on the manifold. For example, in spherical coordinates, the  generally has a range of (-, )!, except at the poles where it's (0,0).& Safe-Inferred manifoldsUnlike the related ,  "spreads out" the shorter list by duplicating elements, before merging, to minimise the number of elements from the longer list which aren't used. manifoldsassociate = associateWith (,). 'None->()*()+(),()-().()/()0()1()2()3()4()5()6()7()89:;<=><=?<@A<@B<@C<@D<@E<@F<@G<@H<@I Alternative<|>Data.SetLike.IntersectionUtil.Associate Util.LtdShow)half-space-0.1.0.0-EIOAjA0jOhWB9cilbnCFiIData.Monoid.AdditiveaddHVszeroHVAdditiveMonoidfromNegativeHalffromPositiveHalfmirrorJoinIsVectorSpacerayIsHalfSpacefullSubspaceIsVectorSpaceprojectToFullSubspacefromFullSubspace scaleNonNeg MirrorJoinRay FullSubspace HalfSpace1linearmap-category-0.4.2.0-3CSwXlzBu5Y7lIj0Tr9OBXMath.LinearMap.Category.Class LinearMap-manifolds-core-0.6.0.0-LdN5y9b9peDJhThmTkrBbI)Math.Manifold.VectorSpace.ZeroDimensionalZeroDimOriginMath.Manifold.Core.PseudoAffine PseudoAffine.-~..-~!pseudoAffineWitness SemimanifoldNeedle.+~^.-~^semimanifoldWitnessMath.Manifold.Core.TypesS¹ℝP¹S²ℝP²D²alerpBpalerpBpalerpSemimanifoldWitnessPseudoAffineWitness fibreSpace baseSpace FibreBundle TangentBundle pParamCD¹ hParamCD¹CD¹ pParamCℝay hParamCℝayCℝay!Math.Manifold.Core.Types.InternalEmptyMfdS⁰NegativeHalfSpherePositiveHalfSphereS⁰_ℝP⁰ℝPZeroℝP⁰_ φParamS¹S¹PolarS¹_ φParamℝP¹HemisphereℝP¹PolarℝP¹_ φParamS² ϑParamS²S²PolarS²_ φParamℝP² ϑParamℝP²HemisphereℝP²PolarℝP²_ φParamD² rParamD²D²PolarD²_D¹ xParamD¹D¹_ℝℝ⁰OpenConeConeDisk2Disk1 Projective2 Projective1 Projective0Sphere2Sphere1Sphere0Real3Real2RealPlusReal1Real0ℝayℝ⁴ℝ³ℝ²ℝ¹NaturallyEmbeddedembedcoEmbedProjectableBoundaryprojectToBoundarymarginFromBoundary$needleBoundaryIsTriviallyProjectible$scalarBoundaryIsTriviallyProjectiblePseudoAffineWithBoundary.--!.-|!-|.--.SemimanifoldWithBoundaryInteriorBoundary HalfNeedle.+^| fromInterior fromBoundary|+^separateInterior toInteriorextendToBoundarysmfdWBoundWitnessneedleIsOpenMfdscalarIsOpenMfdboundaryHasSameScalarSmfdWBoundWitnessOpenManifoldWitness RealFloat'' RealFrac''Num''ScalarManifoldLinearManifold Connected.−.DualNeedleWitness ImpliesMetricMetricRequirement inferMetric inferMetric' RieMetric' RieMetricMetric'MetricNeedle' WithField LocalAffine LocalBilinear LocalLinearLocallyScalableLocalgetLocalOffsetCanonicalDiffeomorphismLocallyCoerciblelocallyTrivialDiffeomorphism coerceNeedle coerceNeedle' coerceNormcoerceVarianceoppositeLocalCoercionManifold coerceMetric coerceMetric'$fPseudoAffineℝP²_$fSemimanifoldℝP²_$fPseudoAffineS²_$fSemimanifoldS²_$fPseudoAffineS¹_$fSemimanifoldS¹_$fPseudoAffineS⁰_$fSemimanifoldS⁰_$fPseudoAffinePoint$fSemimanifoldPoint $fManifoldm$fLocallyCoercible(,)(,)$fLocallyCoercible(,)(,)0$fLocallyCoercibleV4(,)$fLocallyCoercible(,)V4$fLocallyCoercibleV3(,)$fLocallyCoercibleV3(,)0$fLocallyCoercible(,)V3$fLocallyCoercible(,)V30$fLocallyCoercibleV2(,)$fLocallyCoercible(,)V2$fLocallyCoercibleV1Double$fLocallyCoercibleDoubleV1$fLocallyCoercibleV0ZeroDim$fLocallyCoercibleZeroDimV0$fLocallyCoercibleV4V4$fLocallyCoercibleV3V3$fLocallyCoercible(,)(,)1$fLocallyCoercible(,)(,)2$fLocallyCoercibleV2V2$fLocallyCoercible(,)(,)3$fLocallyCoercibleV1V1$fLocallyCoercibleDoubleDouble$fLocallyCoercibleV0V0 $fLocallyCoercibleZeroDimZeroDim$fImpliesMetricNorm$fConnectedFibreBundle$fConnected(,)$fConnectedℝP²_$fConnectedℝP¹_$fConnectedℝP⁰_$fConnectedS²_$fConnectedS¹_ $fConnectedV4 $fConnectedV3 $fConnectedV2 $fConnectedV1$fConnectedDouble$fConnectedZeroDim $fShowLocal'$fPseudoAffineWithBoundaryGenericNeedle'$fSemimanifoldWithBoundaryGenericNeedle($fPseudoAffineWithBoundaryLinearFunction($fSemimanifoldWithBoundaryLinearFunction#$fPseudoAffineWithBoundaryLinearMap$fProjectableBoundaryLinearMap#$fSemimanifoldWithBoundaryLinearMap $fPseudoAffineWithBoundaryTensor $fSemimanifoldWithBoundaryTensor$fProjectableBoundaryPoint$fPseudoAffineWithBoundaryPoint$fSemimanifoldWithBoundaryPoint$fSemimanifoldWithBoundaryD¹_$fProjectableBoundaryS²_$fPseudoAffineWithBoundaryS²_$fSemimanifoldWithBoundaryS²_$fProjectableBoundaryS¹_$fPseudoAffineWithBoundaryS¹_$fSemimanifoldWithBoundaryS¹_$fSemimanifoldWithBoundaryS⁰_$fProjectableBoundary(,)$fPseudoAffineWithBoundary(,)$fProjectableBoundaryV4$fPseudoAffineWithBoundaryV4$fSemimanifoldWithBoundaryV4$fProjectableBoundaryV3$fPseudoAffineWithBoundaryV3$fSemimanifoldWithBoundaryV3$fProjectableBoundaryV2$fPseudoAffineWithBoundaryV2$fSemimanifoldWithBoundaryV2$fProjectableBoundaryV1$fPseudoAffineWithBoundaryV1$fSemimanifoldWithBoundaryV1$fProjectableBoundaryV0$fPseudoAffineWithBoundaryV0$fSemimanifoldWithBoundaryV0$fProjectableBoundaryDouble $fPseudoAffineWithBoundaryDouble $fSemimanifoldWithBoundaryDouble$fEmptyProductBoundary)$fSemimanifoldWithBoundaryProductBoundary$fPseudoAffineProductBoundary0$fSemimanifoldWithBoundaryProductBoundaryNeedleT$$fPseudoAffineProductBoundaryNeedleT$$fSemimanifoldProductBoundaryNeedleT#$fLinearSpaceProductBoundaryNeedleT#$fTensorSpaceProductBoundaryNeedleT#$fVectorSpaceProductBoundaryNeedleT%$fAdditiveGroupProductBoundaryNeedleT#$fAffineSpaceProductBoundaryNeedleT$fSemimanifoldProductBoundary$fSemimanifoldWithBoundary(,)$fHalfSpaceProductHalfNeedle!$fAdditiveMonoidProductHalfNeedleStiefel1 getStiefel1N$fShowStiefel1ParallelTransportingtransportOnNeedleWitnessforgetTransportPropertiesparallelTransporttranslateAndInvblyParTransportForgetTransportPropertiesTransportOnNeedleWitnessTransportOnNeedle:@. tangentAttransformEmbeddedTangents$fRotatableFibreBundle)$fNaturallyEmbeddedFibreBundleFibreBundle*$fNaturallyEmbeddedFibreBundleFibreBundle0*$fNaturallyEmbeddedFibreBundleFibreBundle1*$fNaturallyEmbeddedFibreBundleFibreBundle2*$fNaturallyEmbeddedFibreBundleFibreBundle3*$fNaturallyEmbeddedFibreBundleFibreBundle4*$fNaturallyEmbeddedFibreBundleFibreBundle5*$fNaturallyEmbeddedFibreBundleFibreBundle6$fNaturallyEmbeddedxFibreBundle$fPseudoAffineFibreBundle$fSemimanifoldFibreBundle$fAdditiveGroupFibreBundle$fParallelTransportingka(,)$fParallelTransportingk(,)(,)$fParallelTransportingkS²_V2!$fParallelTransportingkS¹_Double$fParallelTransportingkV4V4$fParallelTransportingkV3V3$fParallelTransportingkV2V2#$fParallelTransportingkDoubleDouble $fParallelTransporting->mZeroDim,$fParallelTransportingLinearFunctionmZeroDim&$fParallelTransportingDiscretemZeroDim HasUnitSphere UnitSpherestiefel unstiefelstiefel1Project stiefel1EmbedCutplane sawHandle cutNormalLine lineHandle lineDirection StiefelScalar normalPlane sideOfCutfathomCutDistance cutPosBetweenlineAsPlaneIntersection$fPseudoAffineStiefel1$fSemimanifoldStiefel1$fLinearSpaceStiefel1Needle$fPseudoAffineStiefel1Needle$fSemimanifoldStiefel1Needle$fAffineSpaceStiefel1Needle$fFiniteFreeSpaceStiefel1Needle$fVectorSpaceStiefel1Needle$fAdditiveGroupStiefel1Needle$fHasBasisStiefel1Needle$fTensorSpaceStiefel1Needle$fHasTrieStiefel1Basis$fShowCutplane$fEqStiefel1Needle EuclidSpaceAffineManifoldAtlas'NumPrimeAtlas ChartIndexchartReferencePoint lookupAtlaseuclideanMetric $fAtlasPoint $fAtlasS²_ $fAtlasS¹_ $fAtlasS⁰_ $fAtlas(,) $fAtlasDouble $fAtlasTensor$fAtlasLinearMap $fAtlasV4 $fAtlasV3 $fAtlasV2 $fAtlasV1 $fAtlasV0$fAtlasZeroDim FlatSpace Riemannian rieMetric IntervalLiketoClosedIntervalGeodesicgeodesicBetween middleBetween interpolatepointsBarycenter$fGeodesicLinearFunction$fGeodesicLinearMap$fGeodesicTensor $fGeodesicV4 $fGeodesicV3 $fGeodesicV2 $fGeodesicV1 $fGeodesicV0$fGeodesicS¹_$fGeodesicS⁰_ $fGeodesic(,)$fGeodesicZeroDim$fGeodesicDouble$fIntervalLikeDouble$fIntervalLikeD¹_$fRiemannianDoubleAffine evalAffinefromOffsetSlope lensEmbeddingcorrespondingDirections$fEnhancedCatEmbeddingEmbedding$fVectorSpaceAffine$fAdditiveGroupAffine$fAffineSpaceAffine$fPseudoAffineAffine$fSemimanifoldAffine$fEnhancedCatAffineLinearMap$fEnhancedCat->Affine$fWellPointedAffine$fPreArrowAffine$fMorphismAffine$fCartesianAffine$fCategoryTYPEAffine LtdErrorShowprettyShowsPrecShade'WithAny_untopological _topological Refinable subShade' refineShade'convolveMetricconvolveShade'IsShadeshadeCtr occlusionfactoriseShade coerceShade orthoShadeslinIsoTransformShade projectShade embedShadeShade' _shade'Ctr_shade'NarrownessShade _shadeCtr _shadeExpanse:±linearProjectShade✠ dualShade dualShade' shadeExpanseshadeNarrowness fullShade fullShade'|±| pointsShadescoverAllAround pointsCovers pointsShade's pointsCover's pseudoECM pointsShades' shadesMerge mixShade'srangeWithinVerticesintersectShade's shadeWithAnyshadeWithoutAnythingprettyShowShade'wellDefinedShade'$fGeodesicShade$fImpliesMetricShade$fGeodesicShade'$fImpliesMetricShade'$fIsShadeShade'$fIsShadeShade$fSemimanifoldShade$fSemimanifoldShadeNeedle$fSemimanifoldWithBoundaryShade$fHalfSpaceShadeHalfNeedle$fAdditiveMonoidShadeHalfNeedle$fSemimanifoldShade'$fSemimanifoldShade'Needle $fSemimanifoldWithBoundaryShade'$fHalfSpaceShade'HalfNeedle $fAdditiveMonoidShade'HalfNeedle$fRefinableLinearMap $fRefinableV4 $fRefinableV3 $fRefinableV2 $fRefinableV1$fRefinableZeroDim$fRefinable(,)$fRefinableDouble$fMonadWithAny$fApplicativeWithAny$fAdditiveGroupWithAny$fVectorSpaceWithAny$fAffineSpaceWithAny$fPseudoAffineWithAny$fSemimanifoldWithAny$fNFDataWithAny $fShowShade'$fLtdErrorShowLinearMap$fLtdErrorShowLinearMap0$fLtdErrorShow(,)$fLtdErrorShowV4$fLtdErrorShowV3$fLtdErrorShowV2$fLtdErrorShowDouble$fLtdErrorShowZeroDim $fShowShade $fShowShade'0$fFunctorWithAny $fShowWithAny$fGenericWithAny$fVectorSpaceShade'Needle$fAdditiveGroupShade'Needle$fVectorSpaceShadeNeedle$fAdditiveGroupShadeNeedle $fShowShade0 HasFlatViewFlatViewflatView superFlatView GenericTree treeBranches NonEmptyTreeTrees SimpleTree TwigEnvironTwigDBranchDBranch'boughDirection boughContentsShaded PlainLeavesDisjointBranchesOverlappingBranches ShadeTree Hourglass upperBulb lowerBulb trunkBranchestraverseTrunkBranchChoicesfromLeafPointsfromLeafPoints_indexShadeTreetreeLeaf positionIndexnLeaves treeDepthunsafeFmapTreeallTwigstwigsWithEnvironscompleteTopShadingflexTwigsShadingseekPotentialNeighbours朳 onlyNodes entireTree onlyLeaves_ onlyLeaves constShaded fmapShadedzipTreeWithListstiAsIntervalMapping spanShading$fFoldableHourglass->->$fApplicativeHourglass$fMonoidHourglass$fSemigroupHourglass$fNFDataHourglass$fNFDataDBranch'$fNFDataShaded$fMonoidShaded$fSemigroupShaded$fSemigroupDBranches'$fShowGenericTree$fMonoidGenericTree$fSemigroupGenericTree$fNFDataGenericTree$fMonoidSawbones$fSemigroupSawbones$fSemigroupDustyEdges$fSemigroupSawboneses$fHasFlatViewSawboneses$fHasFlatViewSawbones$fGenericSawboneses$fGenericGenericTree$fFunctorGenericTree$fFoldableGenericTree$fTraversableGenericTree$fGenericDBranches'$fFunctorDBranches'$fFoldableDBranches'$fTraversableDBranches'$fGenericShaded$fFunctorShaded$fFoldableShaded$fTraversableShaded$fGenericDBranch'$fFunctorDBranch'$fFoldableDBranch'$fTraversableDBranch'$fGenericHourglass$fFunctorHourglass$fFoldableHourglass$fTraversableHourglass$fShowHourglass$fEqGenericTree$fShowDBranches'$fShowDBranch' $fShowShaded Neighbourhood _dataAtNode _neighbours_localScalarProduct_webBoundaryAtNodeWebNodeIdOffset WebNodeId$fGenericNeighbourhood$fFunctorNeighbourhood$fFoldableNeighbourhood$fTraversableNeighbourhood WebLocally LocalWebInfo_thisNodeCoord _thisNodeData _thisNodeId_nodeNeighbours_nodeLocalScalarProduct_webBoundingPlane dataAtNodelocalScalarProduct neighbourswebBoundaryAtNode$fGenericWebLocally$fShowNeighbourhoodNeighbourhoodVector_nvectId _theNVect _nvectNormal _nvectLength_otherNeighboursOverlapnodeLocalScalarProductnodeNeighbours thisNodeCoord thisNodeData thisNodeIdwebBoundingPlanePropagationInconsistencyPropagationInconsistencies_inconsistentPropagatedData_inconsistentAPrioriDatanvectId nvectLength nvectNormalotherNeighboursOverlaptheNVect$fShowPropagationInconsistencyWebChunk _thisChunk_layersAroundChunk PointsWeb webNodeRscinconsistentAPrioriDatainconsistentPropagatedData$fNFDataNeighbourhood $fMonoidPropagationInconsistency#$fSemigroupPropagationInconsistency$fFoldablePointsWeb->->$fNFDataPointsWeb$fGenericPointsWeb$fFunctorPointsWeb$fFoldablePointsWeb$fTraversablePointsWeb NodeInWeb _thisNodeOnly_layersAroundNodelayersAroundChunk thisChunkPathStep_pathStepStart _pathStepEndlayersAroundNode thisNodeOnlyNodeSetWNIPathLinkingBadnessgatherDirectionsBadnesscloseSystemBadness MetricChoice pathStepEnd pathStepStarttraverseInnermostChunkstraverseNodesInEnvifmapNodesInEnviixedFociindexWebunsafeIndexWebDatajumpNodeOffsetwebAroundChunkzoomoutWebChunk pickNodeInWeb webLocalInfo localFmapWebtweakWebGeometrybidirectionaliseWebLinks pumpHalfspacesmallPseudorandSeqlinkingUndesirabilitybestNeighboursbestNeighbours'gatherGoodNeighboursextractSmallestOn pathsTowardstraversePathInIWebtraversePathsTowards$fComonadWebLocally$fFunctorWebLocally$fFunctorLinkingBadness GriddableGriddingParameters mkGriddingGridAxisGridAxInterval GridAxConsGridAxisClosed$fGriddable(,)a$fGriddableDouble[]$fFunctorGridAxisLocalDifferentialEqn_rescanDifferentialEqnLocalDataPropPlan_sourcePosition_targetPosOffset _sourceData_targetAPrioriData _relatedDataDifferentialEqn$fShowLocalDataPropPlan AffineModel_affineModelOffset_affineModelLCoeffestimateLocalJacobian$fShowAffineModelQuadraticModel_quadraticModelOffset_quadraticModelLCoeff_quadraticModelQCoeff$fShowQuadraticModel LocalModel fitLocallytweakLocalOffsetevalLocalModelModellableRelationquadraticModel_derivativesestimateLocalHessianpropagationCenteredModel!propagationCenteredQuadraticModelpropagateDEqnSolution_loc$fLocalModelQuadraticModel$fLocalModelAffineModel RWDiffableRegionDifferentiablediscretisePathIncontinuityRangesdiscretisePathSegsanalyseLocalBehavioursmoothIndicatorregionOfContinuityAroundintervalImages?->?>?<?|: backupRegions$fHasAgentDifferentiable$fWellPointedDifferentiable$fPreArrowDifferentiable$fMorphismDifferentiable$fCartesianDifferentiable$fCategoryTYPEDifferentiable$fWellPointedRWDiffable$fPreArrowRWDiffable$fMorphismRWDiffable$fCartesianRWDiffable%$fEnhancedCatRWDiffableDifferentiable$fCategoryTYPERWDiffable$fEnhancedCat->Differentiable$fNumGenericAgent$fAdditiveGroupGenericAgent($fPointAgentGenericAgentDifferentiableax$fCartesianAgentDifferentiable$fFloatingRWDfblFuncValue$fFractionalRWDfblFuncValue$fNumRWDfblFuncValue$fAdditiveGroupRWDfblFuncValue'$fPointAgentRWDfblFuncValueRWDiffableax$fCartesianAgentRWDiffable$fHasAgentRWDiffableInconsistencyStrategyAbortOnInconsistencyIgnoreInconsistenciesHighlightInconsistenciesInformationMergeStrategymergeInformation ConvexSet EmptyConvex convexSetHullconvexSetIntersectors fromWebNodesfromShadeTree_auto fromShadeTree fromShaded knitShortcuts webBoundarycoerceWebDomain sliceWeb_linsampleWeb_2Dcartesian_linsampleEntireWeb_2Dcartesian_lin localFocusWeb localOnion webOnionsnearestNeighbour!differentiateUncertainWebFunctionlocalModels_CGrid#differentiate²UncertainWebFunctionrescanPDELocallytoGraph ellipsoid ellipsoidSetnaïveinconsistencyAwareindicateInconsistenciespostponeInconsistenciesiterateFilterDEqn_staticiterateFilterDEqn_pathwise"iterateFilterDEqn_static_selective$fSemigroupConvexSet$fApplicativeAverage$fMonoidAverage$fSemigroupAverage$fFunctorAverage$fFunctorInconsistencyStrategy$fShowConvexSet$fShowGridSetup$fShowGridPlanesfilterDEqnSolutions_adaptiveiterateFilterDEqn_adaptiveInterpolationFunctionODEconstLinearDEqnconstLinearODEeuclideanVolGoalmaxDeviationsGoaluncertaintyGoaluncertaintyGoal'SimplexSpanningSimplexFSimplexAbstractSimplexGenProdSimplexGenericSimplex ConeSimplex ℝ⁴Simplex ℝ³Simplex ℝ²Simplex ℝ¹Simplex ℝSimplex ℝ⁰SimplexseenFromOneVertex toBarycentric$fApplicativeAbstractSimplex$fFunctorAbstractSimplex$fFoldableAbstractSimplex$fTraversableAbstractSimplex$fFunctorAbstractSimplex0$fFoldableAbstractSimplex0$fTraversableAbstractSimplex0$fFunctorAbstractSimplex1$fFoldableAbstractSimplex1$fTraversableAbstractSimplex1$fFunctorAbstractSimplex2$fFoldableAbstractSimplex2$fTraversableAbstractSimplex2$fFunctorAbstractSimplex3$fFoldableAbstractSimplex3$fTraversableAbstractSimplex3$fFunctorAbstractSimplex4$fFoldableAbstractSimplex4$fTraversableAbstractSimplex4$fTraversableAbstractSimplex5$fFoldableAbstractSimplex5$fFunctorAbstractSimplex5$fTraversableAbstractSimplex6$fFoldableAbstractSimplex6$fFunctorAbstractSimplex6$fTraversableAbstractSimplex7$fFoldableAbstractSimplex7$fFunctorAbstractSimplex7 CoveringMeshinterpolateGridMeshMeshDomainSpaceMeshGridDataConstraintasWebmeshSimplicesInWeb meshSimplicesextrapolateGridHasZenithDistance zenithAngle HasAzimuthazimuthCoordDifferential HasZCoordzCoord HasYCoordyCoord HasXCoordxCoord CoordinateHasCoordinatesCoordinateIdentifiercoordinateAsLensvalidCoordinateRange coordinate location's$fArbitraryCoordinateIdentifier$fHasCoordinatesS²_ $fArbitraryCoordinateIdentifier0$fHasCoordinatesS¹_$fShowCoordinateIdentifier$fHasCoordinatesFibreBundle $fArbitraryCoordinateIdentifier1$fHasCoordinates(,) $fArbitraryCoordinateIdentifier2 $fArbitraryCoordinateIdentifier3 $fArbitraryCoordinateIdentifier4$fHasCoordinatesDouble$fHasCoordinatesZeroDim$fCoordinateIsh->m$$fCoordinateIshCoordinateIdentifierm$fHasCoordinatesV3$fHasCoordinatesV2$fArbitraryOriginAxisCoord$fHasXCoord(,) $fHasXCoordV3 $fHasXCoordV2$fHasXCoordDouble$fHasYCoord(,)$fHasYCoord(,)0 $fHasYCoordV3 $fHasYCoordV2$fHasZCoord(,)$fHasZCoord(,)0 $fHasZCoordV3$fCoordDifferentialS²_$fCoordDifferentialS¹_$fCoordDifferential(,)$fCoordDifferentialV3$fCoordDifferentialV2$fCoordDifferentialDouble $fArbitraryCoordinateIdentifier5$fHasAzimuthS²_$fHasAzimuthS¹_$fHasZenithDistanceS²_$fEqCoordinateIdentifier$fShowCoordinateIdentifier0$fEqCoordinateIdentifier0$fShowCoordinateIdentifier1$fEqCoordinateIdentifier1$fShowCoordinateIdentifier2$fEqCoordinateIdentifier2$fShowCoordinateIdentifier3$fEqCoordinateIdentifier3$fShowCoordinateIdentifier4$fShowCoordinateIdentifier5$fEqCoordinateIdentifier4$fEqOriginAxisCoord$fShowOriginAxisCoord OuterMaybeT OuterJust OuterNothing EmbeddingfromEmbedProject projection embedding Isomorphism backwardIso forwardIso$->$$<-$fromInversePair perfectInvert$->>-$ fastNubBy fastNubByWithbaseGHC.BaseconstsortWithFastNubfastNub fnubMergeBy sfGroupBy fnubConcatBy fnubConcat fnubConcatMap fnubIntersectemptylens-5.1-8VGH514gSlL4VN1mgxZ9cHControl.Lens.Getter^.⊗ fromIntv0to1otherHalfSphereℝay_ EndomorphismGraphWindowSpeclBoundrBoundbBoundtBound xResolution yResolution EqFloating^ OpenManifoldMath.LinearMap.Category|$|ghc-prim GHC.TypesDoublebijectℝplustoℝbijectℝtoℝplusbijectℝplustoIntvbijectIntvtoℝplusbijectℝtoIntvbijectIntvtoℝbijectℝtoIntvplusbijectIntvplustoℝembCℝayToCD¹projCD¹ToCℝay GHC.MaybeNothing+$>(vector-space-0.16-8Cr26VVqud68FrZK9851o0Data.AffineSpace AffineSpace Quadratic evalQuadraticminusLogOcclusion'GHC.ShowShowfmapGHC.NumNum GHC.FloatFloatingisNaN PreRegion tryDfblDomain RealSubray GlobalRegion regionRDefregionRefPointDiffableEndoProofNotDiffableEndoIsDiffableEndo AffinDiffable LinDevPropagnotDefinedHerermTautologyIntersect IntersectTgetIntersectorssingleIntersect5constrained-categories-0.4.1.0-H1LXz8zTZAcI5QAYInu4TxControl.Functor.ConstrainedControl.Lens.TypeLensControl.Lens.Setter.~%~Lens'pi associateWithGHC.ListzipWith associateassociaterSectorsWithassociaterSectorsassociatelSectorsWithassociatelSectors partitionsdividemapOnNthmapExceptOnNthLtdShowltdShow