-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library for functions pertaining to tree exploration and manipulation -- -- Library for functions pertaining to tree exploration and manipulation @package tree-fun @version 0.8.1.0 -- | Collects all types used in the program module Math.TreeFun.Types data PropertySuperTree a b PropertySuperTree :: !(Tree (SuperNode a)) -> !(PropertyMap a b) -> PropertySuperTree a b [superTree] :: PropertySuperTree a b -> !(Tree (SuperNode a)) [superProperties] :: PropertySuperTree a b -> !(PropertyMap a b) data SuperNode a SuperRoot :: SuperNode a SuperNode :: !a -> !(SuperNode a) -> !(Map a (Int, Int)) -> SuperNode a [myRootLabel] :: SuperNode a -> !a [myParent] :: SuperNode a -> !(SuperNode a) [myLeaves] :: SuperNode a -> !(Map a (Int, Int)) type Height = Int type DistanceMap a = Map a (Map Int (Seq a)) type PropertyMap a b = Map a (Seq b) type MaybePropertyMap a b = Map a (Maybe (Seq b)) instance GHC.Classes.Ord a => GHC.Classes.Ord (Math.TreeFun.Types.SuperNode a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Math.TreeFun.Types.SuperNode a) instance GHC.Show.Show a => GHC.Show.Show (Math.TreeFun.Types.SuperNode a) instance (GHC.Classes.Ord a, GHC.Read.Read a) => GHC.Read.Read (Math.TreeFun.Types.SuperNode a) -- | Collects all functions pertaining to trees module Math.TreeFun.Tree -- | Convert a bool to an integer boolToInt :: Bool -> Int -- | Find out if a node is a leaf or not isLeaf :: Tree a -> Bool -- | Return the labels of the leaves of the tree leaves :: Tree a -> [a] -- | Return the labels of the leaves of the tree with their relative -- heights from the root (the input number you give determines how many -- steps away the leaves are, should almost always start at 0) leavesHeight :: (Ord a) => Int -> Tree a -> Map a Int -- | Return the labels of the leaves of the tree with their relative -- heights from the root (the input number you give determines how many -- steps away the leaves are, should almost always start at 0). Also, -- here we give leaves that share a parent a separate label. leavesCommonHeight :: (Ord a) => Int -> Tree a -> Map a (Int, Int) -- | Return the labels of the leaves of the tree with their weights -- determined by the product of the number of children of their parents -- all the way up to the root, along with their distance. Returns Double -- for more precision. leavesParentMult :: (Ord a) => Double -> Double -> Tree a -> Map a (Double, Double) -- | Return the labels of the leaves of the tree with their weights -- determined by the product of the number of children of their parents -- all the way up to the root. Also, here we give leaves that share a -- parent a separate label. leavesCommonParentMult :: (Ord a) => Int -> Tree a -> Map a (Int, Int) -- | Return the labels of the leaves of the tree with their relative -- heights from the root (the input number you give determines how many -- steps away the leaves are, should almost always start at 0), slower -- version not requiring Ord but no Maps leavesHeightList :: Int -> Tree a -> [(a, Int)] -- | Return the inner nodes of the tree innerNodes :: Tree a -> [a] -- | Return the number of leaves in a tree numLeaves :: (Num b) => Tree a -> b -- | Return the number of inner nodes of a tree numInner :: (Num b) => Tree a -> b -- | Return True if a tree has a leaf connected to the root of the given -- tree hasRootLeaf :: Tree a -> Bool -- | Return the list of root leaves getRootLeaves :: Tree a -> [a] -- | Return the list of properties in a property map for a tree getProperties :: (Eq b) => PropertyMap a b -> [b] -- | Remove leaves from a tree filterLeaves :: Tree a -> Tree a -- | Remove leaves attached to the root of the tree filterRootLeaves :: Tree a -> Tree a -- | Return the map of distances from each leaf to another leaf getDistanceMap :: (Eq a, Ord a) => Tree a -> DistanceMap a -- | Find the distance between two leaves in a tree. getDistance :: (Eq a) => Tree a -> a -> a -> Int -- | Return the map of distances from each leaf to another leaf getDistanceMapSuperNode :: (Eq a, Ord a) => Tree (SuperNode a) -> DistanceMap a -- | Find the distance between two leaves in a leafNode tree. Begin -- recording distances when record is True (should have height starting -- at 0) getDistanceSuperNode :: (Eq a, Ord a) => Tree (SuperNode a) -> a -> a -> Int -- | Get the sum of a tree for a tree with numbered labels sumTree :: (Num a) => Tree a -> a -- | Convert a tree to the LeafNode tree data structure (the leaves are in -- the nodes) toSuperNodeTree :: (Ord a) => SuperNode a -> Tree a -> Tree (SuperNode a)