Îõ³h*: 8%ä      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc0.2.6 Safe-Inferred<ÃkkdtA k--d tree structure that stores points of type p with axis values of type a?. Additionally, each point is associated with a value of type v.kdt9Returns the squared distance between two points of type p with axis values of type a.kdtConverts a point of type p with axis values of type a into a list of axis values [a].kdt A node of a k.-d tree structure that stores a point of type p with axis values of type a?. Additionally, each point is associated with a value of type v×. Note: users typically will not need to use this type, but we export it just in case. kdt3Performs a foldr over each point-value pair in the . kdtBuilds an empty . kdtBuilds an empty 3 using a user-specified squared distance function. kdtReturns d if the given  is empty.kdt Builds a Ð with a single point-value pair and a user-specified squared distance function.kdt Builds a  with a single point-value pair.kdt Builds a ÷ from a list of pairs of points (of type p) and values (of type v), using a user-specified squared distance function.Average time complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.Worst case space complexity: O(n) for n data points.kdtÅA default implementation of squared distance given two points and a .kdt Builds a KdTreeï from a list of pairs of points (of type p) and values (of type v) using a default squared distance function .Average complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.Worst case space complexity: O(n) for n data points.kdt"Inserts a point-value pair into a æ. This can potentially cause the internal tree structure to become unbalanced. If the tree becomes too unbalanced, point queries will be very inefficient. If you need to perform lots of point insertions on an already existing k-d map, check out Data.KdMap.Dynamic..Average complexity:  O(log(n)) for n data points.Worst case time complexity: O(n) for n data points.kdt+Inserts a list of point-value pairs into a ú. This can potentially cause the internal tree structure to become unbalanced, which leads to inefficient point queries.Average complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.kdt3Returns a list of all the point-value pairs in the .Time complexity: O(n) for n data points.kdtReturns all points in the .Time complexity: O(n) for n data points.kdtReturns all values in the .Time complexity: O(n) for n data points.kdtGiven a 9 and a query point, returns the point-value pair in the % with the point nearest to the query.Average time complexity:  O(log(n)) for n data points.Worst case time complexity: O(n) for n data points.#Throws error if called on an empty .kdtGiven a Å, a query point, and a radius, returns all point-value pairs in the 9 with points within the given radius of the query point.0Points are not returned in any particular order.Worst case time complexity: O(n) for n data points and a radius that spans all points in the structure.kdtGiven a , a query point, and a number k, returns the k9 point-value pairs with the nearest points to the query.ÉNeighbors are returned in order of increasing distance from query point.Average time complexity: log(k) * log(n) for k( nearest neighbors on a structure with n data points.Worst case time complexity:  n * log(k) for k( nearest neighbors on a structure with n data points.kdt!Finds all point-value pairs in a å with points within a given range, where the range is specified as a set of lower and upper bounds.0Points are not returned in any particular order.Worst case time complexity: O(n): for n data points and a range that spans all the points.TODO: Maybe use known bounds on entire tree structure to be able to automatically count whole portions of tree as being within given range.kdt/Returns the number of point-value pairs in the .Time complexity: O(1)kdtReturns dÍ if tree structure adheres to k-d tree properties. For internal testing use.kdtradiuskdt query pointkdtÃlist of point-value pairs with points within given radius of querykdtlower bounds of rangekdtupper bounds of rangekdt%point-value pairs within given range         Safe-Inferred<!(kdt A dynamic k--d tree structure that stores points of type p with axis values of type a?. Additionally, each point is associated with a value of type v.)kdt3Performs a foldr over each point-value pair in the (.*kdtGenerates an empty () with a user-specified distance function.+kdtReturns whether the ( is empty.,kdt Generates a (Ê with a single point-value pair using a user-specified distance function.-kdtGenerates an empty ($ with the default distance function..kdt Generates a (Å with a single point-value pair using the default distance function./kdt#Adds a given point-value pair to a (.'Average time complexity per insert for n inserts:  O(log^2(n)).0kdtSame as /&, but takes point and value as a pair.1kdtGiven a (9 and a query point, returns the point-value pair in the (% with the point nearest to the query.Average time complexity:  O(log^2(n)).2kdtGiven a (, a query point, and a number k, returns the k8 point-value pairs with the nearest points to the query.ÉNeighbors are returned in order of increasing distance from query point.Average time complexity: log(k) * log^2(n) for k( nearest neighbors on a structure with n data points.Worst case time complexity:  n * log(k) for k( nearest neighbors on a structure with n data points.3kdtGiven a (Å, a query point, and a radius, returns all point-value pairs in the KdTree9 with points within the given radius of the query point.0Points are not returned in any particular order.Worst case time complexity: O(n) for n data points.4kdt!Finds all point-value pairs in a (å with points within a given range, where the range is specified as a set of lower and upper bounds.0Points are not returned in any particular order.Worst case time complexity: O(n): for n data points and a range that spans all the points.5kdt&Returns the number of elements in the (.Time complexity: O(1)6kdt3Returns a list of all the point-value pairs in the (.Time complexity: O(n) for n data points.7kdtReturns all points in the (.Time complexity: O(n) for n data points.8kdtReturns all values in the (.Time complexity: O(n) for n data points.9kdt-Inserts a list of point-value pairs into the (.ÍTODO: This will be made far more efficient than simply repeatedly inserting.:kdtReturns size of each internal kÇ-d tree that makes up the dynamic structure. For internal testing use.4kdtlower bounds of rangekdtupper bounds of rangekdt%point-value pairs within given range(-.*,/091324678+5):(-.*,/091324678+5): Safe-Inferred)r Akdt A dynamic k--d tree structure that stores points of type p with axis values of type a.BkdtGenerates an empty A) with a user-specified distance function.CkdtGenerates an empty A$ with the default distance function.DkdtReturns whether the A is empty.Ekdt Generates a A? with a single point using a user-specified distance function.Fkdt Generates a A: with a single point using the default distance function.GkdtAdds a given point to a A.'Average time complexity per insert for n inserts:  O(log^2(n)).HkdtGiven a A6 and a query point, returns the nearest point in the A to the query point.Average time complexity:  O(log^2(n)).IkdtGiven a A, a query point, and a number k, returns the k nearest points in the A to the query point.ÉNeighbors are returned in order of increasing distance from query point.Average time complexity: log(k) * log^2(n) for k( nearest neighbors on a structure with n data points.Worst case time complexity:  n * log(k) for k( nearest neighbors on a structure with n data points.JkdtGiven a A:, a query point, and a radius, returns all points in the A7 that are within the given radius of the query points.0Points are not returned in any particular order.Worst case time complexity: O(n) for n data points.KkdtFinds all points in a Aä with points within a given range, where the range is specified as a set of lower and upper bounds.0Points are not returned in any particular order.Worst case time complexity: O(n): for n data points and a range that spans all the points.Lkdt&Returns the number of elements in the A.Time complexity: O(1)Mkdt(Returns a list of all the points in the A.Time complexity: O(n)Kkdtlower bounds of rangekdtupper bounds of rangekdtall points within given rangeACFBEGHJIKMDLACFBEGHJIKMDL Safe-Inferred<7ûPkdtA k--d tree structure that stores points of type p with axis values of type a.QkdtBuilds an empty P.RkdtBuilds an empty P3 using a user-specified squared distance function.Skdt Builds a P with a single point.Tkdt Builds a PÇ with a single point using a user-specified squared distance function.Vkdt Builds a PÇ from a list of data points using a default squared distance function .Average complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.Worst case space complexity: O(n) for n data points.Wkdt Builds a PÎ from a list of data points using a user-specified squared distance function.Average time complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.Worst case space complexity: O(n) for n data points.XkdtInserts a point into a Pæ. This can potentially cause the internal tree structure to become unbalanced. If the tree becomes too unbalanced, point queries will be very inefficient. If you need to perform lots of point insertions on an already existing k-d tree, check out Data.KdTree.Dynamic..Average complexity:  O(log(n)) for n data points.Worse case time complexity: O(n) for n data points.Ykdt Inserts a list of points into a Pú. This can potentially cause the internal tree structure to become unbalanced, which leads to inefficient point queries.Average complexity:  O(n * log(n)) for n data points.Worst case time complexity: O(n^2) for n data points.ZkdtGiven a P6 and a query point, returns the nearest point in the P to the query point.Average time complexity:  O(log(n)) for n data points.Worst case time complexity: O(n) for n data points.&Throws an error if called on an empty P.[kdtGiven a P:, a query point, and a radius, returns all points in the P6 that are within the given radius of the query point.0Points are not returned in any particular order.Worst case time complexity: O(n) for nÅ data points and a radius that subsumes all points in the structure.\kdtGiven a P, a query point, and a number k, returns the k nearest points in the P to the query point.ÉNeighbors are returned in order of increasing distance from query point.Average time complexity: log(k) * log(n) for k( nearest neighbors on a structure with n data points.Worst case time complexity:  n * log(k) for k( nearest neighbors on a structure with n data points.]kdtFinds all points in a Pä with points within a given range, where the range is specified as a set of lower and upper bounds.0Points are not returned in any particular order.Worst case time complexity: O(n): for n data points and a range that spans all the points.^kdt(Returns a list of all the points in the P.Time complexity: O(n) for n data points._kdt&Returns the number of elements in the P.Time complexity: O(1)Vkdt2non-empty list of data points to be stored in the k-d tree[kdtradiuskdt query pointkdt8list of points in tree with given radius of query point]kdtlower bounds of rangekdtupper bounds of rangekdtall points within given rangePQRSTVWXYZ[\]^U_PQRSTVWXYZ[\]^U_å       !"#$%&'()*+,-./ !"01%&'()*. !"234 !2"4356789: kdt-0.2.6-DTEnDnjaiNZ6y7vmavOcpyData.KdMap.StaticData.KdMap.DynamicData.KdTree.DynamicData.KdTree.StatickdtKdMapKdTreeSquaredDistanceFn PointAsListFnTreeNodeEmpty _treeLeft _treePoint _axisValue _treeRight foldrWithKeyempty emptyWithDistnullsingletonWithDist singleton buildWithDistdefaultSqrDistbuildinsertUnbalancedbatchInsertUnbalancedassocskeyselemsnearestinRadiuskNearestinRangesizeisValid$fNFDataTreeNode$fTraversableKdMap$fFoldableKdMap$fFunctorKdMap $fShowKdMap $fNFDataKdMap$fGenericKdMap$fGenericTreeNode$fShowTreeNode$fReadTreeNodeinsert insertPair batchInsert subtreeSizestoList $fShowKdTree$fFoldableKdTree$fNFDataKdTree$fGenericKdTreeghc-prim GHC.TypesTrue