massiv
Massiv (Массив) is an Array Library.
https://github.com/lehins/massiv
Version on this page: | 0.4.5.0 |
LTS Haskell 22.37: | 1.0.4.0 |
Stackage Nightly 2024-10-07: | 1.0.4.0 |
Latest on Hackage: | 1.0.4.0 |
BSD-3-Clause licensed by Alexey Kuleshevich
Maintained by [email protected]
This version can be pinned in stack with:
massiv-0.4.5.0@sha256:a0e16ef4503c642cff1bbf686f1c89e87ac3bb6755f4d975ff8b5b8fc27b61db,4611
Module documentation for 0.4.5.0
Depends on 9 packages(full list with versions):
Used by 2 packages in lts-15.3(full list with versions):
Changes
0.4.5
- Addition of
computeIO
andcomputePrimM
- Addition of
makeArrayLinearA
- Addition of
traverseS
- Fix regression in performance introduced in
massiv-0.4.0
0.4.4
- Addition of
appendOuterM
andconcatOuterM
- Addition of
zoom
- Addition of
write_
,modify_
andswap_
0.4.3
- Addition of
catMaybesS
andtally
0.4.3
- Addition of
applyStencil
andPadding
with helper functionsnoPadding
andsamePadding
. - Addition of
foldlStencil
,foldrStencil
and monoidalfoldStencil
. - Addition of common generic stencils:
sumStencil
,productStencil
,avgStencil
,maxStencil
,minStencil
andidStencil
. - Addition of
mapStencilUnsafe
for the brave. - Improve compile time error reporting for invalid dimensions.
- Fix incorrect loading of
DW
arrays of dimension higher than 3 - Addition of
foldOuterSlice
,ifoldOuterSlice
,foldInnerSlice
andifoldInnerSlice
. Fix for #56
0.4.2
- Fix loading empty
DS
stream arrays of unknown size. Fix for #83.
0.4.1
- Introduction of
Stream
andDS
representation:filterS
,filterM
,ifilterS
,ifilterM
mapMaybeS
,mapMaybeM
,imapMaybeS
,imapMaybeM
unfoldr
,unfoldrN
takeS
anddropS
- Deprecated
traverseAR
,itraverseAR
,traversePrimR
,itraversePrimR
(not feasible to keep duplicate functions just for representation,TypeApplications
orScopedVariables
should be used instead.) - Fix performance issue with copying of unboxed arrays and initialization of storable array.
- Addition of
unsafeLoadIntoS
,unsafeLoadInto
andmaxSize
- Addition of
reverse
,reverse'
andreverseM
- Addition of
modifyDimension
,modifyDimM
, andmodifyDim'
0.4.0
- Made
Construct
a super class ofMutable
- Reimplement a safe version of
makeLoadArray
, that is parallelizable. - Switch from
EltRepr r ix
to much simplerR r
- Remove
Construct
instance forM
representation. unsafeLinearSet
- length argument now acceptsSz1
instead of anInt
- Renamed:
forPrimM_
->forPrimM
iforPrimM_
->iforPrimM
iforLinearPrimM_
->iforLinearPrimM
- Introduced new functions that do not mutate the original array:
forPrimM_
,iforPrimM_
andiforLinearPrimM_
- Addition of
readM
,writeM
,modifyM
,swapM
,modifyM_
,swapM_
- Add an orphan instance of
MonadThrow
forST
monad for older versions ofexceptions
. See ekmett/exceptions#72 - Deprecation of
read'
,write'
modify'
andswap'
- Make
modify
accept a monadic action, rather than a pure function. Also now it returns the old element. - Make
swap
return the swapped elements. - Addition of
unsafeLinearSwap
andunsafeSwap
- Expose
unsafeLinearModify
andunsafeModify
- Expose
Data.Massiv.Core.List
- Expose
indexWith
, so macroINDEX_CHECK
frommassiv.h
could be used outside massiv. - Addition of
liftSz
- Fixed
expand*
functions by making them acceptSz1
instead of anInt
- Addition of
expandWithinM
- Bunch of minor fixes to
Show
instances - Extracted test-suite into it’s own package.
- Stop accepting computation strategy for all functions that can be performed sequentially only:
iterateN
iiterateN
unfoldrS_
iunfoldrS_
unfoldlS_
iunfoldlS_
makeArrayA
makeArrayAR
generateArrayLinearS
generateArrayS
- Redefined most of the numeric operators with
Numeric
andNumericFloat
. Will be required for SIMD operations.
0.3.6
- Addition of
unsafeArrayLinearCopy
,unsafeLinearCopy
,unsafeLinearShrink
,unsafeLinearGrow
- Implementation of
iterateUntil
anditerateUntilM
identityMatrix
- generation of identity matrix
0.3.5
- Fix and export
guardNumberOfElements
Eq
instances forIndexException
andSizeException
- Fix
upsample
implementation and improve its performance. - Addition of
deleteRegionM
,deleteRowsM
anddeleteColumnsM
0.3.4
- Use the the new stateful workers feature of
scheduler-1.4.0
- Addition of:
randomArrayS
randomArrayWS
generateArrayWS
generateArrayLinearWS
mapWS
,forWS
,imapWS
andiforWS
- and
splitLinearlyWithStatefulM_
0.3.3
- Fix type signature for
createArray
. - Support for new version of
scheduler
- Addition of
randomArray
0.3.2.1
- Fix
sqrtA
function: #76
0.3.2
- Exported
withMArrayS
- Switch to pure exception throwing for
read'
,write'
,modify'
andswap'
.MonadThrow
constraint prevented those functions to be used inST
monad. - Addition of
quicksort
,quicksortM_
,unstablePartitionRegionM
andunsafeUnstablePartitionRegionM
0.3.1
- Addition of
rangeStepInclusive'
- Addition of
flatten
makeLoadArray
has been deprecated intounsafeMakeLoadArray
.- A new safe
makeLoadArrayS
has been added. - Fix
infix 4
for(...)
and(..:)
range functions, so they can be easily composed with numeric operations - Addition of
imapSchedulerM_
andiforSchedulerM_
0.3.0
- Class hierarchy an associated methods:
getComp
moved fromConstruct
toLoad
Size
class lost array value parametere
.unsafeResize
andunsafeExtract
became their own classes
- New classes:
Resize
withunsafeResize
from oldSize
, except witharray
type parameter for applicability to mutableMArray
sExtract
withunsafeExtract
from oldSize
StrideLoad
, child ofLoad
ifoldlIO
and related no longer take list of capabilities, but instead respect the inner computation strategy. For that reason these folds have been removed:foldlOnP
,ifoldlOnP
,foldrOnP
,ifoldrOnP
fold
now is just like the one fromData.Foldable
takes no arguments and requires elements to be a monoidsingleton
does not accept computation strategy any more and createsSeq
array by default- New function
empty
. Ragged
functions are no longer exported, until the interface stabilizes and proper implementation of ragged arrays is in place.- Partial functions
read'
,write'
andswap'
now live in IO and throw proper exceptions. loadArray
is renamed toloadArrayM
and there is a new separate function (not part ofLoad
class) with the nameloadArray
that actually usesloadArrayM
- Moved
unsafeWithPtr
intoData.Massiv.Array.Unsafe
- Addition of:
unsafeArrayToForeignPtr
,unsafeMArrayToForeignPtr
,unsafeArrayFromForeignPtr
,unsafeArrayFromForeignPtr0
,unsafeMArrayFromForeignPtr
,unsafeMArrayFromForeignPtr0
- Addition of
castToByteString
,castFromByteString
- Addition of
makeUnsafeStencil
Window
now has anwindowUnrollIx2
field.- Addition of
insertWindow
anddropWindow
0.2.8.1
- Fix
sqrtA
function. Backport of #76
0.2.8
- Fixed a problem where convolution stencil size was not inverted, causing out of bounds memory read: #72
- Fixed an issue with windowed array where a stencil size is smaller than the array it is applied to
- Fixed incorrect cross-correlation stencil construction
0.2.7
- Fixed a serious performance regression in
Stencil
’sFunctor
instance, which was introduced in version0.2.3
- Added type and pattern synonyms
Sz
for future compatibility with version0.3
. Could be useful for migration.
0.2.6
- Add
expand*
family of functions. - Long awaited
makeArrayM
/makeArrayA
andmapM
/forM
/imapM
/iforM
/traverseA
/itraverseA
alnog with corresponding functions allowing for supplying representation. - Deprecate
mapP
andmapP_
in favor ofmapIO
andmapIO_
, while making latter respect theComp
. - Addition of a whole collection of mutable operators:
mapIO
/mapIO_
/imapIO
/imapIO_
/forIO
/forIO_
/iforIO
/iforIO_
createArray
/createArrayST
/createArrayST_
generateArray
/generateArrayIO
unfoldlPrim
/unfoldlPrim_
makeArrayA
,makeArrayAR
- Addition of cute synonyms:
(...)
and(..:)
0.2.5
- Fix for
insertDimension
#62
0.2.4.1
- Fix a bug in
zip
functions, where resulting array size would not take into account the size of one of the input arrays.
0.2.4
- Addition of inner folds:
ifoldlInner
,foldlInner
,ifoldrInner
andfoldrInner
- Addition of functions that can fold over any dimension (
foldlWithin
,foldlWithin'
, etc.) - Addition of
ifoldMono
andifoldSemi
, thus fixing: #54 - Improvement over manipulating index dimensions with addition of type level
Dimension n
data type and functions likegetDimension
,dropDimension
. - Addition of
insertDim
and type levelinsertDimension
as well aspullOutDim
andpullOutDimension
- Add partial
extractFromTo'
0.2.3
- Addition of
Profunctor
functions forStencil
:lmapStencil
,rmapStencil
andbimapStencil
- Addition of integration approximation:
Data.Massiv.Array.Numeric.Integral
- Removed overlapping instances for
DW
in favor of concrete instances. - Relaxed contraint restrictions on matrix multiplication
(|*|)
and slightly improved performance with rewrite rules to avoid double transform.
0.2.2
- Addition of
withMArray
,withMArrayST
. - Improved preformance of matrix multiplication
0.2.1
-
Addition of
Stride
and related functionscomputeWithStride
andcomputeWithStrideAs
. -
Addition of
Window
-
Addition of
loadArray
adnloadArrayWithStride
with default implementations that will become new loading functions in a subsequent release.loadArray
will replaceloadS
andloadP
, which will be deprecated in the next release and removed in the next major release. Some of this is discussed in #41 -
Addition of various conversion functions:
fromByteString
,toByteString
andtoBuilder
unwrapArray
,evalArray
,unwrapMutableArray
,evalMutableArray
unwrapNormalFormArray
,evalNormalFormArray
,unwrapNormalFormMutableArray
,evalNormalFormMutableArray
-
Fix:
Eq
instance forArray M ix e
0.2.0
- Fixed type signatures for
convertAs
andconvertProxy
- Added type constructors for
DW
andDI
Show
instance forDW
arrays.- Addition of
unsafeBackpermuteDW
. - Breaking changes:
- Create new
Data.Massiv.Array.Stencil.Unsafe
module and moveforStencilUnsafe
into it. - Rename of rank -> dimensions #25
- Removal
Eq
andOrd
instances forValue
#19 - Move border resolution to
mapStencil
frommakeStencil
.
- Removal
- Updated iterators
iterM
,iterM_
, etc. to have a separate step per dimension.
- Create new
0.1.6
Semigroup
andMonoid
instance forValue
.- Addition of
forStencilUnsafe
. - Fix
minimum
behaving asmaximum
. - Addition of
foldSemi
.
0.1.5
- Fix inverted stencil index calculation #12
- Add support for cross-correlation.
0.1.4
- Addition of Monoidal folding
foldMono
. - Expose
liftArray2
.
0.1.3
- Addition of
withPtr
andunsafeWithPtr
for Storable arrays - Addition of
computeInto
. - Exposed
makeWindowedArray
.
0.1.2
- Support for GHC-8.4 - instance of
Comp
forSemigroup
- Brought back support for GHC-7.10
0.1.1
- Addition of experimental
mapM
,imapM
,forM
,iforM
,generateM
andgenerateLinearM
functions. Fixes #5 - Addition of
Ord
instances for some array representations.
0.1.0
- Initial Release