javelin-0.1.2.0: src/Data/Series/Generic.hs
{-# LANGUAGE NoImplicitPrelude #-}
-----------------------------------------------------------------------------
-- |
-- Module : Data.Series.Generic
-- Copyright : (c) Laurent P. René de Cotret
-- License : MIT
-- Maintainer : laurent.decotret@outlook.com
-- Portability : portable
--
-- This module contains data structures and functions to work with any type of 'Series',
-- including boxed and unboxed types.
--
-- Use the definitions in this module if you want to support all types of 'Series' at once.
module Data.Series.Generic (
-- * Definition
Series(index, values),
convert,
-- * Building/converting 'Series'
singleton, fromIndex,
-- ** Lists
fromList, toList,
-- ** Vectors
fromVector, toVector,
-- ** Handling duplicates
Occurrence, fromListDuplicates, fromVectorDuplicates,
-- ** Strict Maps
fromStrictMap, toStrictMap,
-- ** Lazy Maps
fromLazyMap, toLazyMap,
-- ** Ad-hoc conversion with other data structures
IsSeries(..),
-- * Mapping and filtering
map, mapWithKey, mapIndex, concatMap, filter, filterWithKey,
take, takeWhile, drop, dropWhile,
-- ** Mapping with effects
mapWithKeyM, mapWithKeyM_, forWithKeyM, forWithKeyM_, traverseWithKey,
-- * Folding
fold, foldM, foldWithKey, foldMWithKey, foldMap, foldMapWithKey,
-- ** Specialized folds
mean, variance, std,
length, null, all, any, and, or, sum, product, maximum, maximumOn, minimum, minimumOn,
argmax, argmin,
-- * Scans
postscanl, prescanl, forwardFill,
-- * Combining series
zipWith, zipWithMatched, zipWithKey,
zipWith3, zipWithMatched3, zipWithKey3,
ZipStrategy, skipStrategy, mapStrategy, constStrategy, zipWithStrategy, zipWithStrategy3,
zipWithMonoid, esum, eproduct, unzip, unzip3,
-- * Index manipulation
require, requireWith, catMaybes, dropIndex,
-- * Accessors
-- ** Bulk access
select, selectWhere, Range, to, from, upto, Selection,
-- ** Single-element access
at, iat,
-- * Replacement
replace, (|->), (<-|),
-- * Grouping and windowing operations
groupBy, Grouping, aggregateWith, foldWith,
windowing, expanding,
-- * Displaying 'Series'
display, displayWith,
noLongerThan,
DisplayOptions(..), defaultDisplayOptions
) where
import Control.Foldl ( mean, variance, std )
import Data.Series.Generic.Aggregation ( groupBy, Grouping, aggregateWith, foldWith
, windowing, expanding, all, any, and, or, sum, product, maximum, maximumOn, minimum, minimumOn
, argmax, argmin,
)
import Data.Series.Generic.Definition ( Series(index, values), IsSeries(..), Occurrence, convert, singleton, fromIndex, fromStrictMap
, toStrictMap, fromLazyMap, toLazyMap, fromList, fromListDuplicates, toList
, fromVector, fromVectorDuplicates, toVector
, map, mapWithKey, mapIndex, concatMap, length, null, take, takeWhile, drop, dropWhile
, mapWithKeyM, mapWithKeyM_, forWithKeyM, forWithKeyM_, traverseWithKey, fold, foldM
, foldWithKey, foldMWithKey, foldMap, foldMapWithKey
, display, displayWith, noLongerThan, DisplayOptions(..), defaultDisplayOptions
)
import Data.Series.Generic.Scans ( postscanl, prescanl, forwardFill )
import Data.Series.Generic.View ( Range, Selection, at, iat, select, selectWhere, to, from, upto, filter, filterWithKey, require, requireWith
, catMaybes, dropIndex,
)
import Data.Series.Generic.Zip ( zipWith, zipWithMatched, zipWithKey, zipWith3, zipWithMatched3, zipWithKey3, replace
, (|->), (<-|), zipWithStrategy, zipWithStrategy3, ZipStrategy, skipStrategy, mapStrategy, constStrategy
, zipWithMonoid, esum, eproduct, unzip, unzip3
)