E!/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                             None*9;  SafeUnlike 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.associate = associateWith (,).   (c) Justus Sagemller 2016GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableSafe      Subset-finder          Safe*6Simply a merge sort that discards equivalent elements.Like :, but doesn't just discard duplicates but "merges" them.  cmp = cmp `fastNubByWith' .!This function is also defined in GHC.Exts`, but only in a version that requires (["log [) function applications, as opposed to [ here.   (c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*,/2459:;<=@DILOQRTA 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. !"#$%&Injective embedding9Surjective projection. Must be left inverse of embedding.'()*+,-./012345 !"#$%&'( !"#$%&'()*+,-./012345"0#0'0(0(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*9:;<=?DLOQRT3Better known as ! z (which is not a legal Haskell name), the ray of positive numbers (including zero, i.e. closed on one end).8dAn open cone is homeomorphic to a closed cone without the lid , i.e. without the last copy  of x, at the far end of the height interval. Since that means the height does not include its supremum, it is actually more natural to express it as the entire real ray, hence the name.:Range [0, "[;Irrelevant at h = 0.<A (closed) cone over a space x is the product of xN with the closed interval 'D' of heights , except on its tip : here, x is smashed to a single point.hThis construct becomes (homeomorphic-to-) an actual geometric cone (and to 'D') in the special case x = 'S'.>Range [0, 1]?Irrelevant at h = 0.@The standard, closed unit disk. Homeomorphic to the cone over 'S', but not in the the obvious, flat  way. (And not at all, despite the identical ADT definition, to the projective space '!P'!)BRange [0, 1].CRange [-, [.DxThe two-dimensional real projective space, implemented as a unit disk with opposing points on the rim glued together.FRange [0, 1].GRange [-, [.HThe ordinary unit sphere.JRange [0, [.KRange [-, [.=%&'()*+,-./01234567678989:;<=>?@ABCDEFGHIJK:;<=>?@ABCDEFGHIJKHLMNOP"! #$%&'()*+,-./01234567678989:;<=>?@ABCDEFGHIJK:;<=>?@ABC%%&'()*+,-./01234567678989:;<=>?@ABCDEFGHIJK:;<=>?@ABCDEFGHIJKC8(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*+,/2459:;<=@DILOQRTQMUST have length n.RMUST be between 0 and n-1.LIMainly intended to be used as a data kind. Of course, we'd rather use  GHC.TypeLits- naturals, but they aren't mature enough yet.SFFree vector containing the (0-based) indices of its fields as entries.[TUVWXYQZ[R\]^_`abcdefghijklmnopqrstuvwxyz{|}L~S,WXYQZ[Rnpoqrstuvwxyz{|}L~S6TUVWXYQZ[R\]^_`abcdefghijklmnopqrstuvwxyz{|}L~S(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*,/69:;<=?@DLNOQRT\ S}A 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.UThe 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) VA 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.WqRequire some constraint on a manifold, and also fix the type of the manifold's underlying field. For example,  WithField ! HilbertManifold v constrains v to be a real (i.e., T-) Hilbert space. Note that for this to compile, you will in general need the -XLiberalTypeSynonymsF extension (except if the constraint is an actual type class (like i6): only those can always be partially applied, for type- constraints this is by default not allowed).\=A point on a manifold, as seen from a nearby reference point.aJInstances of this class must be diffeomorphic manifolds, and even have canonically isomorphic tangent spaces, so that fromPackedVector . asPackedVector ::  x ->  J defines a meaningful representational identity  between these spaces.bEMust be compatible with the isomorphism on the tangent spaces, i.e. S locallyTrivialDiffeomorphism (p .+~^ v) "a locallyTrivialDiffeomorphism p .+~^ c v iSee  and  for the methods.nProxy-version of .GMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8   MNOPQRSTUVWXYZ[\]^_`abcdegfhijklmnAijjkk V\]^nUTSR  jMW[ZYXabcdefgghh_`NOPQlm8MNOPQRSTUVWXYZ[\]^_`a bcdefgghhijjkklmnopqrstuvwxyz{|}~n6(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone *9:;DRTaQAn euclidean space is a real affine space whose tangent space is a Hilbert space.The ! class plus manifold constraints.(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"$%&*9:;<=?@DLNOQRT\bNone%&:QRwCategory 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.SThe 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 knowP where it's defined and where not. And I don't mean you need to exhaustively -check all results...) Uhb :: RWDiffable ! ! ! hb = alg (\p -> - p * logBase 2 p - (1-p) * logBase 2 (1-p) ) A 8 needs to be associated with a certain reference point (D includes that point) to define a connected subset of a manifold.*A pathwise connected subset of a manifold m!, whose tangent space has scalar s.GThe 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 derivative f'  , if, for >0, there exists  such that |f x " (f x + x"f'  )| <  for all |x " x | < .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 " 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!2Unfortunately 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"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*9:;<=?@DLNOQRT[\  Represent a _ by a smooth function which is positive within the region, and crosses zero at the boundary.=Important special operator needed to compute intersection of s.Set-intersection of regions would not be guaranteed to yield a connected result or even have the reference point of one region contained in the other. This combinator assumes (unchecked) that the references are in a connected sub-intersection, which is used as the result.!Cartesian product of two regions.%Cartesian product of two pre-regions.nRequire 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 Return 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/ equivalentL to less-or-equal comparison, because there is no such thing as equality..Return the RHS, if it is greater than the LHS.WTry 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 .eReplace the regions in which the first function is undefined with values from the second function.Like ?, but gives a differentiable function instead of a Hask one.O_Limit the number of steps taken in either direction. Note this will not cap the resolution but length of the discretised path.Parameter interval of interest.Inaccuracy allowance .Path specification.]Trail of points along the path, such that a linear interpolation deviates nowhere by more as .*Max number of exploration steps per regionNeeded resolution of boundariesFunction to investigate<Subintervals on which the function is guaranteed continuous.:Maximum number of path segments and/or points per segment.Inaccuracy allowance  for arguments (mostly relevant for resolution of discontinuity boundaries  consider it a safety margin from singularities ), and ! for results in the target space.kPath specification. It is recommended that this function be limited to a compact interval (e.g. with ,  and ). For many functions the discretisation will even work on an infinite interval: the point density is exponentially decreased towards the infinities. But this is still pretty bad for performance.:Discretised paths: continuous segments in either directionx value.f xI , derivative (i.e. Taylor-1-coefficient), and reverse propagation of O ( ) bound.*Max number of exploration steps per region$Needed resolution in (x,y) directionFunction to investigateF(XInterval, YInterval) rectangles in which the function graph lies.L4553(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone/:(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*9:;<=?@DLNOQRT\Must be nonzero.    (c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*/9:;<=?@DLNOQRT\-Oriented hyperplanes, navely generalised to  manifolds:  p w" represents the set of all points q such that (q.-~.p) ^<.> w "a 0.|In vector spaces this is indeed a hyperplane; for general manifolds it should behave locally as a plane, globally as an (n"1)-dimensional submanifold..   &Some point lying in the desired plane.6Co-vector perpendicular to the plane. Must be nonzero.(Hyperplane to measure the distance from.~Metric to use for measuring that distance. This can only be accurate if the metric is valid both around the cut-plane's M, and around the points you measure. (Strictly speaking, we would need parallel transport to ensure this).!Point to measure the distance to.mA 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.N"! #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKZN210/.-,+*)('&%#$7654HIJKDEFG"! @ABC3<=>?89:;Z"   0(c) Justus Sagemller 2013GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone9;   "! #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdegfhikjlmn(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*,/24569:;<=?@DFILNOQRT MOne-dimensional manifolds, whose closure is homeomorpic to the unit interval.      !"#$%&        &%$#"!           !"#$%&(c) Justus Sagemller 2016GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone %&:@DNQRT  !"#$%&'( !# !"#$%&'( (c) Justus Sagemller 2016GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone$%&/2569:;@DFLNOQRT[b)Essentially the same as (x,y)3, but not considered as a product topology. The * etc. instances just copy the topology of x , ignoring y.-!Class of manifolds which can use ;d as a basic set type. This is easily possible for vector spaces with the default implementations..a . b "a True means a is fully contained in b, i.e. from ) a p < 1 follows also minusLogOcclusion' b p < 1./ Intersection between two shades.0If p is in a (red) and  is in b (green), then p.+~^ is in convolveShade' a b (blue). Example: xhttps://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/ShadeCombinations.ipynb#shadeConvolutions :images/examples/ShadeCombinations/2Dconvolution-skewed.png3Access the center of a ? or a ;.4tCheck the statistical likelihood-density of a point being within a shade. This is taken as a normal distribution.7ASCII version of '' '.93Squash a shade down into a lower dimensional space.:gInclude 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 ;V it gives an extrusion pillar  pointing in the projection's orthogonal complement.;CA co-shade  can describe ellipsoid regions as well, but unlike ?q it can be unlimited / infinitely wide in some directions. It does OTOH need to have nonzero thickness, which ? needs not.?A ? 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 preciseR description of an arbitrarily-shaped connected subset of a manifold, there is Region., whose implementation is vastly more complex.CSpan a ?4 from a center point and multiple deviation-vectors.EiCombine two shades on independent subspaces to a shade with the same properties on the subspaces (see 5) and no covariance.LASimilar to ':', but instead of expanding the shade, each vector  restrictsr it. Iff these form a orthogonal basis (in whatever sense applicable), then both methods will be equivalent.qNote that '||' is only possible, as such, in an inner-product space; in general you need reciprocal vectors (V) to define a ;.MAttempt to find a ?m 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 O 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.OLike MC, but ensure that all points are actually in the shade, i.e. if [? x ex] is the result then metric (recipMetric ex) (p-x ) "d 1 for all p in the list.TAttempt 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.UWeakened version of X1. 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.)5Evaluate the shade as a quadratic form; essentially  minusLogOcclusion sh x = x  .)^ (sh^.shadeExpanse $ x - sh^.shadeCtr)  where HD gives a metric (matrix) that characterises the width of the shade.e'*+,(-.)*+,-/./010123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTHow 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. A list of n shades.m "d n+ shades which cover at least the same area.U)2VW3XYZ4[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6'()*+,-01/.269:87543;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\C?@ABC;<=>L23456789:3HIJKMPOQN4(['(57EX8:9-./01./16UFG\DTSR0)*+,YZVWI'**+,(-.)*+,-//./010123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU)2VW3XYZ4[\]^_`abcdefghijklmnopqrstuvwxyz{|}~C6E5L6 (c) Justus Sagemller 2017GPL v3(@) jsagemue $ uni-koeln.de experimentalportableNone*/:@DLQRT5.Dimension of the space of affine functions on v.61Dimension of the space of quadratic functions on v.1789:;<=>?@ABCDE56WW 789:;<=>?@ABCDE56(c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*,/2459:;<=?@DFILOQRT Type-level zero of kind L.*A conservative  state monad containing a J. It can be extended by new simplices, which can then be indexed using  . The universally-quantified t_ argument ensures you can't index simplices that don't actually exist in this triangulation.An n -dimensional abstract simplicial complex is a collection of ns-simplices which are glued together  in some way. The preferred way to construct such complexes is to run a  builder.An n-simplex is a connection of n5+1 points in a simply connected region of a manifold.Use this together with D to easily build simplices, like you might construct lists. E.g. (0,0)  (1,0)  (0,1) ::   !.}A unique (for the given dimension) ID of a triagulation's simplex. It is the index where that simplex can be found in the .Reference the k--faces of a given simplex in a triangulation.QImport an entire triangulation, as disjoint from everything already in the monad.!Import a triangulation like with :, together with references to some of its subsimplices.TCombine two triangulations (assumed as disjoint) to a single, non-connected complex.CFGHIJKLMNOPQRSTUVWXYZ[\]^$L$L;FGHIJKLMNOPQRSTUVWXYZ[\]^55 (c) Justus Sagemller 2016GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableSafe2_`ab_`a_`ab (c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&,/23459:;<=?@DLOQRT[b   x "E (x,  x)   x "E [(x,  x)]   x "E Maybe (x,  x) Hourglass as the geometric shape (two opposing ~conical volumes, sharing only a single point in the middle); has nothing to do with time.PBuild a quite nicely balanced tree from a cloud of points, on any real manifold. Example: yhttps://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/Trees-and-Webs.ipynb#pseudorandomCloudTree 'images/examples/simple-2d-ShadeTree.pngThe 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. 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. Example: yhttps://nbviewer.jupyter.org/github/leftaroundabout/manifolds/blob/master/test/Trees-and-Webs.ipynb#pseudorandomCloudTree 9images/examples/TreesAndWebs/2D-scatter_twig-environs.png!U+6733 CJK UNIFIED IDEOGRAPH tree(. The main purpose of this is to give  a more concise c instance.Imitate the specialised ( structure with a simpler, generic tree.-Left (and, typically, also right) inverse of  fromLeafNodes. WRT union.defghijklmnopqrstuvwxyz{|}~dFor deciding (at the lowest level) what close  means; this is optional for any tree of depth >1.The tree to index intoPosition to look upIndex 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..Sorted list of non-negative indices to extract Input list((Extracted elements, remaining elements)      !"#$](-1/.269:8543;<=>?@ABCHIJKLMNOPQTUX[     g?@ABC;<=>L2345689:3HIJKMPOQN4([5X8:9-./1./16UT     {defghijklmnopqrstuvwxyz{|}~      !"#$ (c) Justus Sagemller 2015GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone!"%&*,/2459:;<=?@DFILNOQRT[?@ABCDEFG?@ABCDEBCDE?@A ?@ABCDEFG (c) Justus Sagemller 2017GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&/2345:<=@DILOQRTA  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.j In general, there can be disconnected components, but every connected component is strongly connected.Prefer 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.Prefer 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.! from the co-Kleisli category of U.fIJKLMNOPUVWXYZ[\]^_`cdefghijklmnopqrstuvwxy{|}~ A vector v for which we want dv .^v "e 0.A plane dv  and some vectors ws with dv  .^w "e 0, which should also fulfill dv .^w "e 0. The plane dv* fulfilling these properties, if possible.1Absolute-square distance (euclidean norm squared)TDirectional distance (distance from wall containing all already known neighbours)b 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.1The node towards which the paths should converge.-The action which to traverse along each path.2Initialisation/evaluation for each path-traversal.`IJKLMNOPUVWXYZ[\]^_`cdefghijklmnopqrstuvwxy{|}~fPOIJKLMN`_^]UVWXYZ[\onmlkjcdefghiyxwvupqrst{|}~BIJKLMNOPUVWXYZ[\]^_`cdefghijklmnopqrstuvwxy{|}~(c) Justus Sagemller 2016GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*/23459:;<=@DFILNOQRT[ If p5 is in all intersectors, it must also be in the hull.lRe-calculate the links in a web, so as to give each point a satisfyingly complete-spanning  environment.kConsider at each node not just the connections to already known neighbours, but also the connections to theirh neighbours. If these next-neighbours turn out to be actually situated closer, link to them directly.Fetch a point between any two neighbouring web nodes on opposite sides of the plane, and linearly interpolate the values onto the cut plane.! from the co-Kleisli category of U.! from the co-Kleisli category of U1, restricted to some contiguous part of a web.Calculate 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)The  jhttp://hackage.haskell.org/package/transformers-0.5.4.0/docs/Control-Monad-Trans-Writer-Lazy.html#v:censortransformers version of this- is insufficiently polymorphic, requiring w ~ w'.Under intersection.o6Local scalar-product generator. You can always use  recipMetric . BO (but this may give distortions compared to an actual Riemannian metric). Source tree.dSource tree, with topology information (IDs of neighbour-candidates, or needles pointing to them)     7Scalar product on the domain, for regularising the web.7Scalar product on the domain, for regularising the web.#Badness function for local results./pqrst/pqrstT     (c) Justus Sagemller 2016GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalportableNone%&*/23459:;<=@DFILNOQRT[An 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 ! ! p y, but actually x can at least be an arbitrary one-dimensional space (i.e. basically real intervals or 'S'). In these cases, there is always only one partial derivative: that which we integrate over, in the only possible direction for propagation.A function that variates, relatively speaking, most strongly for arguments around 1. In the zero-limit it approaches a constant (but with arbitrarily large derivative); for  ! " the derivative approaches 0.[The idea is that if you consider the ratio of two function values, it will be close to 1 if either both arguments are much smaller or both much larger than 1, even if the ratio of these arguments is large. Only if both arguments are close to 1, or lie on opposite sides of it, will the ratio of the function values will be significant.    !"#$%&$%'$()$(*$(+$(,$(,$(-$(-$(.$(.$(/$(0$(1$(2$(3$(4$(5$(6$(7$(8$(9$(:$(;$<=$<>$<?$<@$<A$<A$<B$<C$<D$<D$<E$<FGHIJKLMNOPQRSTUVWXYZZ[\]]^_``abccdeffghijklmnopqrstuvwxyyz{{|}~      !"#$%&'(()*+,-./0123456789:;< = > ? ? @ A B C D E F G H I J K L M N O P P Q R S S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n n o p q r s t u v w x y z z { | } ~                                                                             !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNO!"P$<Q$<RSTUVVWCXXYZ[[\]]^__`aabccdeefghijklmnopqrstuvwxyz{|}~L!         ! " " # $ $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 89:;<=>?@ABCDEFGHIJKLMN O P Q RST U U V W X Y Z [ \ [ ] ] ^ _ ` a a b c d e f  g h i j i k k l m m n o p q r s t u v w x y z { | } ~                                                    (manifolds-0.4.4.0-4U7mLxDASVE34WPYCdNRgyData.Manifold.TypesData.Manifold.PseudoAffineData.SimplicialComplexData.Manifold.AtlasData.Function.AffineData.Function.DifferentiableData.Manifold.Types.StiefelData.Manifold.RiemannianData.Manifold.Shade!Data.Manifold.Function.LocalModelData.Manifold.TreeCoverData.Manifold.GriddableData.Manifold.Web.InternalData.Manifold.Web"Data.Manifold.DifferentialEquation Util.LtdShowUtil.AssociateData.SetLike.IntersectionData.List.FastNubData.EmbeddingData.Manifold.Types.Primitive Data.CoNat!Data.Function.Differentiable.DataControl.Applicative Applicative*> Alternative<|>Data.Manifold.Cone Data.Manifold Data.Manifold.Function.QuadraticControl.Monad.Trans.OuterMaybe0linearmap-category-0.3.4.0-2kMmYzL4luL5xYBgKLGjLMath.LinearMap.Category.Class LinearMap-manifolds-core-0.4.4.0-9wAiUv6tsJ2ArjZXWbe4tr)Math.Manifold.VectorSpace.ZeroDimensionalZeroDimOriginMath.Manifold.Core.PseudoAffinealerpBpalerpBpalerpBoundarylessWitnessSemimanifoldWitnessPseudoAffineWitnesssemimanifoldWitness.-~^ translateP toInterior fromInterior.+~^InteriorNeedle SemimanifoldpseudoAffineWitness.-~!.-~. PseudoAffineMath.Manifold.Core.TypesNegativeHalfSpherePositiveHalfSphereS⁰ φParamS¹S¹ℝP¹ xParamD¹D¹ℝℝ⁰OpenConeConeDisk2Disk1 Projective2 Projective1Sphere2Sphere1Sphere0Real3Real2RealPlusReal1Real0ℝayℝ⁴ℝ³ℝ²ℝ¹Cℝay hParamCℝay pParamCℝayCD¹ hParamCD¹ pParamCD¹D² rParamD² φParamD²ℝP² rParamℝP² φParamℝP²S² ϑParamS² φParamS²NatDualNeedleWitness ImpliesMetricMetricRequirement inferMetric inferMetric' RieMetric' RieMetricMetric'MetricNeedle' WithField LocalAffine LocalBilinear LocalLinearLocallyScalableLocalgetLocalOffsetCanonicalDiffeomorphismLocallyCoerciblelocallyTrivialDiffeomorphism coerceNeedle coerceNeedle' coerceNormcoerceVarianceoppositeLocalCoercioninteriorLocalCoercionManifoldboundarylessWitness inInterior coerceMetric coerceMetric'⊙+^$fImpliesMetricNorm$fPseudoAffineℝP²$fSemimanifoldℝP²$fPseudoAffineS²$fSemimanifoldS²$fPseudoAffinePoint$fSemimanifoldPoint$fLocallyCoercible(,)(,)$fLocallyCoercible(,)(,)0$fLocallyCoercibleV4(,)$fLocallyCoercible(,)V4$fLocallyCoercibleV3(,)$fLocallyCoercibleV3(,)0$fLocallyCoercible(,)V3$fLocallyCoercible(,)V30$fLocallyCoercibleV2(,)$fLocallyCoercible(,)V2$fLocallyCoercibleV1Double$fLocallyCoercibleDoubleV1$fLocallyCoercibleV0ZeroDim$fLocallyCoercibleZeroDimV0$fPseudoAffineFreeVect$fSemimanifoldFreeVect$fLocallyCoercibleV4V4$fLocallyCoercibleV3V3$fLocallyCoercible(,)(,)1$fLocallyCoercible(,)(,)2$fLocallyCoercibleV2V2$fLocallyCoercible(,)(,)3$fLocallyCoercibleV1V1$fLocallyCoercibleDoubleDouble$fLocallyCoercibleV0V0 $fLocallyCoercibleZeroDimZeroDim $fManifoldm $fShowLocal EuclidSpaceAffineManifoldAtlas ChartIndexchartReferencePointinteriorChartReferencePoint lookupAtlaseuclideanMetric $fAtlasPoint $fAtlasS² $fAtlasS¹ $fAtlasS⁰ $fAtlas(,) $fAtlasTensor$fAtlasLinearMap $fAtlasV4 $fAtlasV3 $fAtlasV2 $fAtlasV1 $fAtlasV0 $fAtlasDouble$fAtlasZeroDimAffine evalAffinefromOffsetSlope lensEmbeddingcorrespondingDirections$fEnhancedCatEmbeddingEmbedding$fVectorSpaceAffine$fAdditiveGroupAffine$fAffineSpaceAffine$fPseudoAffineAffine$fSemimanifoldAffine$fEnhancedCatAffineLinearMap$fEnhancedCat(->)Affine$fWellPointedAffine$fPreArrowAffine$fMorphismAffine$fCartesianAffine$fCategoryAffine RWDiffableRegionDifferentiablediscretisePathIncontinuityRangesdiscretisePathSegsanalyseLocalBehavioursmoothIndicatorregionOfContinuityAroundintervalImages?->?>?<?|: backupRegions$fFloatingRWDfblFuncValue$fFractionalRWDfblFuncValue$fNumRWDfblFuncValue$fAdditiveGroupRWDfblFuncValue'$fPointAgentRWDfblFuncValueRWDiffableax$fCartesianAgentRWDiffable$fHasAgentRWDiffable$fWellPointedRWDiffable$fPreArrowRWDiffable$fMorphismRWDiffable$fCartesianRWDiffable%$fEnhancedCatRWDiffableDifferentiable$fCategoryRWDiffable$fNumGenericAgent$fAdditiveGroupGenericAgent($fPointAgentGenericAgentDifferentiableax$fCartesianAgentDifferentiable$fHasAgentDifferentiable$fWellPointedDifferentiable$fPreArrowDifferentiable$fMorphismDifferentiable$fCartesianDifferentiable$fEnhancedCat(->)Differentiable$fCategoryDifferentiableStiefel1 getStiefel1N$fShowStiefel1 HasUnitSphere UnitSpherestiefel unstiefelstiefel1Project stiefel1EmbedCutplane sawHandle cutNormalLine lineHandle lineDirection StiefelScalar normalPlane sideOfCutfathomCutDistance cutPosBetweenlineAsPlaneIntersection$fPseudoAffineStiefel1$fSemimanifoldStiefel1$fLinearSpaceStiefel1Needle$fTensorSpaceStiefel1Needle$fPseudoAffineStiefel1Needle$fSemimanifoldStiefel1Needle$fAffineSpaceStiefel1Needle$fFiniteFreeSpaceStiefel1Needle$fHasBasisStiefel1Needle$fVectorSpaceStiefel1Needle$fAdditiveGroupStiefel1Needle$fHasTrieStiefel1Basis$fShowCutplane$fEqStiefel1Needle FlatSpace Riemannian rieMetric IntervalLiketoClosedIntervalGeodesicgeodesicBetweengeodesicWitness middleBetweenGeodesicWitness interpolatepointsBarycenter$fRiemannianDouble$fIntervalLikeDouble$fIntervalLikeD¹$fGeodesicLinearFunction$fGeodesicLinearMap$fGeodesicTensor $fGeodesicV4 $fGeodesicV3 $fGeodesicV2 $fGeodesicV1 $fGeodesicV0 $fGeodesicS¹$fGeodesicS⁰$fGeodesicStiefel1$fGeodesic(,,) $fGeodesic(,)$fGeodesicZeroDim$fGeodesicDouble 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'srangeOnGeodesicrangeWithinVerticesintersectShade's shadeWithAnyshadeWithoutAnythingprettyShowShade'wellDefinedShade' $fShowShade'$fLtdErrorShowLinearMap$fLtdErrorShowLinearMap0$fLtdErrorShow(,)$fLtdErrorShowV4$fLtdErrorShowV3$fLtdErrorShowV2$fLtdErrorShowDouble$fLtdErrorShowZeroDim $fShowShade $fShowShade'0$fMonadWithAny$fApplicativeWithAny$fAdditiveGroupWithAny$fVectorSpaceWithAny$fAffineSpaceWithAny$fPseudoAffineWithAny$fSemimanifoldWithAny$fNFDataWithAny$fRefinableLinearMap $fRefinableV4 $fRefinableV3 $fRefinableV2 $fRefinableV1$fRefinableZeroDim$fRefinable(,)$fRefinableDouble$fGeodesicShade'$fSemimanifoldShade'$fGeodesicShade$fSemimanifoldShade$fIsShadeShade'$fImpliesMetricShade'$fImpliesMetricShade$fIsShadeShade$fFunctorWithAny $fShowWithAny$fGenericWithAny $fShowShade0LocalDifferentialEqn_rescanDifferentialEqnLocalDataPropPlan_sourcePosition_targetPosOffset _sourceData_targetAPrioriData _relatedDataDifferentialEqn$fShowLocalDataPropPlan AffineModel_affineModelOffset_affineModelLCoeffestimateLocalJacobian$fShowAffineModelQuadraticModel_quadraticModelOffset_quadraticModelLCoeff_quadraticModelQCoeff$fShowQuadraticModel LocalModel fitLocallytweakLocalOffsetModellableRelationquadraticModel_derivativesestimateLocalHessianpropagationCenteredModel!propagationCenteredQuadraticModelpropagateDEqnSolution_loc$fLocalModelQuadraticModel$fLocalModelAffineModelSuccThreeTwoOneZeroNeighbouringSimplices SimplexIT HaskMonadTriangT TriangulationSimplexZS:<|.<. makeSimplex makeSimplex'simplexVerticessimplexVertices' evalTriangT runTriangT doTriangT getTriang liftInTriangTunliftInTriangT tgetSimplexITlookSplxFacesITlookSplxVerticesIT lookVertexIT lookSimplex simplexITListlookSupersimplicesITsharedBoundarydistinctSimplicesdisjointTriangulationmixinTriangulation$fMonadTransTriangT$fMonadTriangT$fApplicativeTriangT$fMonoidTriangulation$fSemigroupTriangulation$fFunctorTriangulation$fFunctorSimplex$fFunctorTriangT $fEqSimplexIT$fOrdSimplexIT$fShowSimplexIT$fShowTriangulation $fShowSimplex HasFlatViewFlatViewflatView superFlatView GenericTree treeBranches NonEmptyTreeTrees SimpleTree AutoTriang TriangBuild TwigEnvironTwigDBranchDBranch'boughDirection boughContentsShaded PlainLeavesDisjointBranchesOverlappingBranches ShadeTree Hourglass upperBulb lowerBulb trunkBranchestraverseTrunkBranchChoicesfromLeafPointsfromLeafPoints_indexShadeTreetreeLeaf positionIndexnLeaves treeDepthunsafeFmapTreeallTwigstwigsWithEnvironscompleteTopShadingflexTwigsShadingseekPotentialNeighbours doTriangBuildbreakdownAutoTriang朳 onlyNodes entireTree onlyLeaves_ onlyLeaves constShaded fmapShadedzipTreeWithListstiAsIntervalMapping spanShading$fHasFlatViewSawboneses$fHasFlatViewSawbones$fSemigroupSawboneses$fSemigroupDustyEdges$fMonoidSawbones$fSemigroupSawbones$fShowGenericTree$fMonoidGenericTree$fSemigroupGenericTree$fNFDataGenericTree$fPseudoAffineBaryCoords$fSemimanifoldBaryCoords$fAffineSpaceBaryCoords$fMonoidShaded$fSemigroupShaded$fNFDataDBranch'$fNFDataShaded$fSemigroupDBranches'$fFoldableHourglass(->)(->)$fApplicativeHourglass$fMonoidHourglass$fSemigroupHourglass$fNFDataHourglass$fGenericHourglass$fFunctorHourglass$fFoldableHourglass$fTraversableHourglass$fShowHourglass$fGenericDBranch'$fFunctorDBranch'$fFoldableDBranch'$fTraversableDBranch'$fGenericShaded$fFunctorShaded$fFoldableShaded$fTraversableShaded$fGenericDBranches'$fFunctorDBranches'$fFoldableDBranches'$fTraversableDBranches'$fGenericGenericTree$fFunctorGenericTree$fFoldableGenericTree$fTraversableGenericTree$fGenericSawboneses$fEqGenericTree$fShowDBranches'$fShowDBranch' $fShowShaded GriddableGriddingParameters mkGriddingGridAxisGridAxInterval GridAxConsGridAxisClosed$fGriddable(,)a$fGriddableDouble[]$fFunctorGridAxis 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$fFoldablePointsWeb(->)(->)$fNFDataPointsWeb$fNFDataNeighbourhood $fMonoidPropagationInconsistency$fGenericPointsWeb$fFunctorPointsWeb$fFoldablePointsWeb$fTraversablePointsWeb NodeInWeb _thisNodeOnly_layersAroundNodelayersAroundChunk thisChunkPathStep_pathStepStart _pathStepEndlayersAroundNode thisNodeOnlyNodeSetWNIPathLinkingBadnessgatherDirectionsBadnesscloseSystemBadness MetricChoice pathStepEnd pathStepStarttraverseInnermostChunkstraverseNodesInEnvifmapNodesInEnviixedFociindexWebunsafeIndexWebDatajumpNodeOffsetwebAroundChunkzoomoutWebChunk pickNodeInWeb webLocalInfo localFmapWebtweakWebGeometrybidirectionaliseWebLinks pumpHalfspacesmallPseudorandSeqlinkingUndesirabilitybestNeighboursbestNeighbours'gatherGoodNeighboursextractSmallestOntraversePathInIWebtraversePathsTowards$fComonadWebLocally$fFunctorWebLocally$fFunctorLinkingBadnessInconsistencyStrategyAbortOnInconsistencyIgnoreInconsistenciesHighlightInconsistenciesInformationMergeStrategymergeInformation ConvexSet EmptyConvex convexSetHullconvexSetIntersectors fromWebNodesfromShadeTree_auto fromShadeTree fromShaded knitShortcuts webBoundarycoerceWebDomain sliceWeb_linsampleWeb_2Dcartesian_linsampleEntireWeb_2Dcartesian_lin localFocusWeb webOnionsnearestNeighbour!differentiateUncertainWebFunctionlocalModels_CGrid#differentiate²UncertainWebFunctionrescanPDELocallytoGraph ellipsoid ellipsoidSetnaïveinconsistencyAwareindicateInconsistenciespostponeInconsistenciesiterateFilterDEqn_static"iterateFilterDEqn_static_selective$fApplicativeAverage$fMonoidAverage$fSemigroupConvexSet$fFunctorAverage$fFunctorInconsistencyStrategy$fShowConvexSet$fShowGridSetup$fShowGridPlanesfilterDEqnSolutions_adaptiveiterateFilterDEqn_adaptiveODEconstLinearDEqnconstLinearODEeuclideanVolGoalmaxDeviationsGoaluncertaintyGoaluncertaintyGoal'LtdShowTLtdShow runLtdShowltdShowArrayltdShowsltdPrint $fLtdShow[] $fLtdShow(,)$fLtdShowVector$fLtdShowLtdShowT associateWithbaseGHC.ListzipWith associateassociaterSectorsWithassociaterSectorsassociatelSectorsWithassociatelSectors partitionsdividemapOnNthmapExceptOnNth IntersectTgetIntersectorssingleIntersectrmTautologyIntersect fastNubBy fastNubByWithGHC.BaseconstsortWithFastNubfastNub fnubMergeBy sfGroupBy fnubConcatBy fnubConcat fnubConcatMap fnubIntersect Embedding embedding projection Isomorphism forwardIso backwardIso$->$$<-$fromInversePair perfectInvertfromEmbedProject$->>-$$fEnhancedCatcEmbedding$fMorphChoiceEmbedding$fMorphismEmbedding$fCoCartesianEmbedding$fCartesianEmbedding$fCategoryEmbedding!$fEnhancedCatEmbeddingIsomorphism$fEnhancedCatcIsomorphism$fMorphChoiceIsomorphism$fMorphismIsomorphism$fCoCartesianIsomorphism$fCartesianIsomorphism$fCategoryIsomorphism EndomorphismNaturallyEmbeddedembedcoEmbedGraphWindowSpeclBoundrBoundbBoundtBound xResolution yResolution EqFloating^$fNaturallyEmbeddedCℝay(,)$fNaturallyEmbeddedD¹Double$fNaturallyEmbeddedℝP²V3$fNaturallyEmbeddedS²V3$fNaturallyEmbeddedS¹V2$fNaturallyEmbeddedS⁰Double$fNaturallyEmbeddedx(,)$fNaturallyEmbeddedx(,)0empty"lens-4.15.4-KUno97tdZMYJKCU13eoExKControl.Lens.Getter^.⊗ fromIntv0to1otherHalfSphere getFreeVect getInRangeindices AsHaskFunctorrunAsHaskFunctorFreeVectRangeInRangeNatTagAtFtorAntepænultimategetNatTagAtFtorAntepænultimateNatTagAtFtorPænultimategetNatTagAtFtorPænultimateNatTagAtFtorUltimategetNatTagAtFtorUltimateNatTagAtPreantepænultimategetNatTagAtPreantepænultimateNatTagAtAntepænultimategetNatTagAtAntepænultimateNatTagAtPænultimategetNatTagAtPænultimateKnownNattheNattheNatNcozerocozeroTcosuccfCosucccosuccTfCosuccTcoNatcoNatTcoInduce coInduceT ftorCoInduce ftorCoInduceT tryToMatchZS RangeTrienatToIntfromNat natTagLastnatTagPænultimatenatTagAntepænultimate natSelfSucc natSelfSuccNmapNatTagAtPænultimatemapNatTagAtAntepænultimatemapNatTagAtPreantepænultimatemapNatTagAtFtorUltimatemapNatTagAtFtorPænultimatemapNatTagAtFtorAntepænultimate tryToMatchT tryToMatchTT tryToMatchTTTftorTryToMatchftorTryToMatchTftorTryToMatchTT clipToRange replicVector freeVectorperfectZipWith freeSortBy freeRotatefreeConsfreeSnoc$fApplicativeAsHaskFunctor$fFunctorAsHaskFunctor$fHasBasisFreeVect$fInnerSpaceFreeVect$fVectorSpaceFreeVect$fAdditiveGroupFreeVect$fAffineSpaceFreeVect$fShowFreeVect%$fTraversableFreeVectFreeVect(->)(->)$fApplicativeFreeVectD:R::->:Rangex0$fHasTrieRange $fKnownNatS $fKnownNatZMath.LinearMap.Category|$|ghc-prim GHC.TypesDoubleNumPrime hugeℝVal sphereFold(vector-space-0.11-6k1yIzn28MIJm9sAxXuuUFData.AffineSpace AffineSpaceGHC.NumNum GHC.FloatFloatingisNaN PreRegion tryDfblDomain GlobalRegion RealSubrayregionRefPoint regionRDefDiffableEndoProofIsDiffableEndoNotDiffableEndo AffinDiffable LinDevPropagnotDefinedHere$fCategoryDiffableEndoProof$fSemigroupDiffableEndoProof minDblfuncsunsafePreRegionIntersect regionProd preRegionProd lerp_diffableData.VectorSpacelerpRWDfblFuncValue ConstRWDFV RWDFV_IdVar GenericRWDFV DfblFuncValue ℝInterval RealDimensionunsafe_dev_ε_δ dev_ε_δ as_devεδgenericiseDifferentiableactuallyLinearEndoactuallyAffineEndoactuallyLinearactuallyAffinedfblFnValsFuncdfblFnValsCombinepostEndogenericisePreRegionpositivePreRegionnegativePreRegionpositivePreRegion'negativePreRegion'preRegionToInfFrompreRegionFromMinInfTopreRegionToInfFrom'preRegionFromMinInfTo'intervalPreRegionglobalDiffable'genericiseRWDFVgrwDfblFnValsFuncgrwDfblFnValsCombine rwDfbl_plusrwDfbl_negateV postCompRWdualCoCoProductpositiveRegionalId ConeSemimfdCℝayInteriorfromCℝayInteriorfromCD¹InteriortoCℝayInteriortoCD¹InteriorSConn'dConeVecArr ConeNeedle ConeVecArr getConeVecArrbijectℝplustoℝbijectℝtoℝplusbijectℝplustoIntvbijectIntvtoℝplusbijectℝtoIntvbijectIntvtoℝembCℝayToCD¹projCD¹ToCℝay$fHasUnitSphereV3$fHasUnitSphereV2$fHasUnitSphereDouble$fSemimanifoldCD¹$fSemimanifoldCℝay Stiefel1BasisgetStiefel1BasisStiefel1NeedlegetStiefel1TangentSt1BTries1bTrieuarrAdd uarrSubtracts1nZ uarrScales1bVs1nDasTensor asLinearMap+$>l2normNothingD:R::->:Stiefel1Basisa0 QuadraticaffineQuadratic evalQuadratic$fVectorSpaceQuadratic$fAdditiveGroupQuadratic$fAffineSpaceQuadratic$fPseudoAffineQuadratic$fSemimanifoldQuadraticminusLogOcclusion'ltdErrorShowWitnessshowsPrecShade'_errorLtdCprettyShowsPrecShadeLtdErrorShowWitness debugView DebugViewminusLogOcclusiondefaultConvolveShade' extractJust p¹Dimension p²DimensionrescanDifferentialEqn relatedData sourceDatasourcePositiontargetAPrioriDatatargetPosOffsetaffineModelLCoeffaffineModelOffset QModelTupquadraticModelLCoeffquadraticModelOffsetquadraticModelQCoeffquadratic_linearRegressiongLinearRegressionmodelParametersOverdetMargintgetSimplexIT'unsafeRunTriangTTriangSkeletonTriangVertices nTopSplxsnSplxs triangReadTunsafeEvalTriangT execTriangTgetEntireTriang forgetVolumes onSkeletonlookSplxFacesIT'lookSplxVerticesIT'lookSplxsVerticesIT lookVertexIT'simplexITList'lookSupersimplicesIT'lookSupersimplicesIT''triangulationBulkwithThisSubsimplexlookupSimplexCone OuterMaybeT OuterNothing OuterJust$fApplicativeOuterMaybeTGHC.ShowShowWall_wallID _wallAnchor _wallNormal _wallDistanceDepth Sawboneses SingleCut DustyEdgessawChunk chunkDustDListSawbones sawnTrunk1 sawnTrunk2sawdust1sawdust2 LeafyTree getAutoTriang FullTriang TriangBuilderTriangVerticesStISimplexiSimplexBCCordEmbed BaryCoordsgetBaryCoordsTail DBranches' DBranches LeafIndex LeafCount HourglassBulb UpperBulb LowerBulb wallAnchor wallDistancewallID wallNormal subshadeId' subshadeIdflipHouroneBulbdirectionChoicesdirectionIChoicestraverseDirectionChoicesindexDBranchesfromLeafPoints'sShIdPartition'sShIdPartitionasList update_nth amputateId deleteIds amputateIds sortByKeytrunksoverlappingBranchesunsafeFmapLeaves_unsafeFmapLeavestraverseTwigsWithEnvironstransferAsNormsDoflexTopShadingleavesWithPotentialNeighbours getBaryCoordsgetBaryCoords' getBaryCoord mkBaryCoordsbottomExtendSuitabilityoptimalBottomExtensioniSimplexSideViewspartitionsOfFstLength splxVerticesstiWithDensityconeTipmkConefocifociNE.:IntervalivLBoundivRBoundPairGriddingParametersfstGriddingParamssndGriddingParams ℝGridParamgshmapaxisEnumFromStepTo axisGrLengthprettyFloatShow shade2Intvl intvl2ShadelgD:R:GriddingParameters(,)a0D:R:GriddingParametersDouble[]0fmapsmoothenWebTopology5constrained-categories-0.3.0.1-6WFelWXXBPOHgPMS5s7WjpControl.Functor.ConstrainedlocalTraverseWebcensorSolverNodeStateSolverNodeInfo_solverNodeStatus_solverNodeJacobian_solverNodeBadness_solverNodeAgeAverageweight averageAcc GridSetup_gridStartCorner_gridSplitDirs GridPlanes_gridPlaneNormal_gridPlaneSpacing_gridPlanesCountInterpolationSeqInterpolationIv_interpolationSegRange_interpolationFunctionCPConeOSNodeOSNeedlefromTopWebNodestoShadedunlinkedFromShaded autoLinkWeb fromTopShadedchoicesmeanOfgeometricMeanOfmkInterpolationSeq_lincartesianGrid2DsplitToGridLinessampleWebAlongGrid_lin hardbakeChunk entireWebtreewiseTraverseLocalWebtreewiseTraverseLocalWeb' localOnionlocalTraverseWebChunk differentiateUncertainWebLocally"differentiate²UncertainWebLocallyacoSnd intersectors itWhileJustdupHeadmaybeAltfilterDEqnSolutions_staticaverage averaging$filterDEqnSolutions_static_selectivehandleInconsistency OldAndNew solverNodeAgesolverNodeBadnesssolverNodeJacobiansolverNodeStatus oldAndNew oldAndNew'recomputeJacobian goalSensitiveeuclideanRelativeMetricVolume