-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Some special functions to work with lists (with zip). -- -- Uses normalizitions inside for the tuples. Can be used to generate -- data for 2D function points. @package doublezip @version 0.1.0.0 -- | Some special functions to work with lists (with zip). module Data.DoubleZip -- | Norms a tuples in a list by their first elements so that the greatest -- by an absolute value first element is equal to 1 (or -1). If all the -- first elements are zeros then prints a warning message and exits -- successfully. normFst :: (Fractional a, Ord a) => [(a, b)] -> IO [(a, b)] -- | Norms a tuples in a list by their second elements so that the greatest -- by an absolute value second element is equal to 1 (or -1). If all the -- second elements are zeros then prints a warning message and exits -- successfully. normSnd :: (Fractional b, Ord b) => [(a, b)] -> IO [(a, b)] -- | A special function transformation to obtain the resulting list so that -- its first elements in the inner tuples are in a special way normed to -- 1 (or -1) by normFst and the inner tuples are sequenced one by -- another as a 2D points of the generating function f :: a -> -- b. To obtain non-empty result the given second argument must have -- at least two elements. evalFstFV :: (Fractional a, Ord a, Eq b) => (a -> b) -> [a] -> IO [((a, b), (a, b))] -- | The same as evalFstFV but uses a monadic IO function f. evalFstFVM :: (Fractional a, Ord a, Eq b) => (a -> IO b) -> [a] -> IO [((a, b), (a, b))] -- | A special function transformation to obtain the resulting list so that -- its second elements in the inner tuples are in a special way normed to -- 1 (or -1) by normSnd and the inner tuples are sequenced one by -- another as a 2D points of the generating function f :: a -> -- b. To obtain non-empty result the given second argument must have -- at least two elements. Is similar to evalFstFV. evalSndFV :: (Fractional b, Ord b, Eq a) => (a -> b) -> [a] -> IO [((a, b), (a, b))] -- | The same as evalSndFV but uses a monadic IO function f. evalSndFVM :: (Fractional b, Ord b, Eq a) => (a -> IO b) -> [a] -> IO [((a, b), (a, b))] double42Float4 :: ((Double, Double), (Double, Double)) -> ((Float, Float), (Float, Float)) float42Double4 :: ((Float, Float), (Float, Float)) -> ((Double, Double), (Double, Double))