vector-doublezip-0.2.0.0: Some special functions to work with Vector (with zip).

Copyright(c) OleksandrZhabenko 2020
LicenseMIT
StabilityExperimental
Safe HaskellNone
LanguageHaskell2010

Data.Vector.DoubleZip

Description

Maintainer : olexandr543@yahoo.com

Some special functions to work with Vector (with zip).

Synopsis

Documentation

normFst :: (Fractional a, Ord a) => Vector (a, b) -> IO (Vector (a, b)) Source #

Norms a tuples in a Vector 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.

normSnd :: (Fractional b, Ord b) => Vector (a, b) -> IO (Vector (a, b)) Source #

Norms a tuples in a Vector 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.

evalFstFV :: (Fractional a, Ord a) => (a -> b) -> Vector a -> IO (Vector ((a, b), (a, b))) Source #

A special function transformation to obtain the resulting Vector 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.

evalFstFVM :: (Fractional a, Ord a) => (a -> IO b) -> Vector a -> IO (Vector ((a, b), (a, b))) Source #

The same as evalFstFV but uses a monadic IO function f.

evalSndFV :: (Fractional b, Ord b) => (a -> b) -> Vector a -> IO (Vector ((a, b), (a, b))) Source #

A special function transformation to obtain the resulting Vector 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.

evalSndFVM :: (Fractional b, Ord b) => (a -> IO b) -> Vector a -> IO (Vector ((a, b), (a, b))) Source #

The same as evalSndFV but uses a monadic IO function f.