-- 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))