aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested
Commit message (Collapse)AuthorAge
* Save some VS.concat by using toVectorListTMikolaj Konarski28 hours
|
* Let X.fromListOuterSN and ravelOuterN take NonEmptyMikolaj Konarski28 hours
|
* Don't force a list of identical elementsMikolaj Konarski28 hours
| | | | | | | | | This makes a big difference when a pair of lists is attempted to be streamed and the first one is of trivial primitive elements (e.g., when implementing a fold as a special case of mapAccum with the output list containing only ()). Forcing the first trivial list would cause the second non-trivial list to be represented as nested thunks, burdening GC greatly.
* Simplify and slightly speed up internal fromList functionsMikolaj Konarski28 hours
|
* Inline most lifting wrappersMikolaj Konarski28 hours
| | | | | | | This results in only marginal performance gain, probably because they are already small enough to be specialized and/or inlined automatically, but these pragmas ensure it remains so regardless of changes in GHC heuristics.
* Add a potentialy helpful bang for consistencyMikolaj Konarski28 hours
|
* Document that mshapeTree is partialmild-tweaks-repackagedMikolaj Konarski28 hours
|
* Add a few more GHC warnings and fix all offendersMikolaj Konarski28 hours
|
* Improve the implementation of fromSNat'Mikolaj Konarski28 hours
| | | | leading to 6% lower allocation in Det.hs primal test.
* Fix f in SMayNat to always be SNat and UNPACK itMikolaj Konarski29 hours
|
* Implement Tom's ixsFromIxSMikolaj Konarski29 hours
| | | | | | that really helps in processing indexes using list functions and getting back to the same type of index now that KnownNat is removed from IxS and so the type information is harder to preserve.
* Make type variables consistent between shaped and mixed listsMikolaj Konarski29 hours
|
* Generalize shsTakeIxMikolaj Konarski31 hours
|
* Speed up the bad case of mvecsReplicate using mvecsWriteLinearMikolaj Konarski31 hours
|
* Express mvecsWrite and mvecsWritePartial using the new methodsMikolaj Konarski31 hours
| | | | | | | and change the type of the latter to make it possible. This slightly improves performance of horde-ad tests, before horde-ad even starts using the Linear methods, which improves performance even more.
* Add mvecsWriteLinear and mvecsWritePartialLinear (unused yet)Mikolaj Konarski31 hours
|
* Add mvecsReplicateMikolaj Konarski31 hours
|
* Remove the preposterous shsFromListS and shsFromIxSHEADmasterMikolaj Konarski31 hours
|
* Generalize ix?ToLinear and speed it up a bitMikolaj Konarski31 hours
|
* Add INLINEABLE to ixxToLinear ahead of generalization, to benchmarkMikolaj Konarski31 hours
| | | | No horde-ad test speedup noticed.
* Improve haddocks of mvecsUnsafeFreezeTom Smeding31 hours
|
* Add method mvecsUnsafeFreeze and use itMikolaj Konarski31 hours
|
* Inlining magicTom Smeding2025-12-03
|
* Restore suffixes sharing in *FromLinearTom Smeding2025-12-03
| | | | Thanks Mikolaj for spotting it's broken
* Make shsFromList even more const-likeMikolaj Konarski2025-12-02
|
* Add a missing INLINEABLE for ixsToListMikolaj Konarski2025-12-02
|
* Define {list,sh,ix}*ToList functions using 'build'Tom Smeding2025-12-02
| | | | This should allow foldr/build fusion
* Let sh*FromList functions print proper error messagesTom Smeding2025-12-02
|
* Provide ix*FromLinear for all three shape kindsTom Smeding2025-12-02
| | | | This speeds up {r,s}generatePrim
* Doc commentsTom Smeding2025-12-02
|
* Style and uniformity of shape/index/list functionsTom Smeding2025-12-02
|
* Generalize mgeneratePrim to potentially avoid @fmap fromIntegral@Mikolaj Konarski2025-12-02
|
* Define mgeneratePrim as a fast special case variantMikolaj Konarski2025-12-02
|
* Unify fromList functions for shapesMikolaj Konarski2025-12-01
|
* Don't call continuation-based functions just *FromListMikolaj Konarski2025-12-01
|
* Unify toList functions for shapesMikolaj Konarski2025-12-01
|
* Expose the unfolding of the indexing operationsMikolaj Konarski2025-12-01
|
* Inline all higher order shape functionsMikolaj Konarski2025-11-30
|
* Add INLINEABLE on ixxFromLinearTom Smeding2025-11-26
|
* Benchmark and improve ixxFromLinearTom Smeding2025-11-26
|
* Commit Tom's new code for sh?Enum functionsMikolaj Konarski2025-11-26
|
* Update doc comment in TraceTom Smeding2025-11-24
|
* Export PermR from top-levelTom Smeding2025-11-24
|
* trace: Print arguments and return valueTom Smeding2025-11-24
|
* Fix error messages for pi/fromRational in MixedTom Smeding2025-11-22
| | | | Thanks Mikolaj!
* Generalise sh?Enum functions to arbitrary NumTom Smeding2025-11-18
| | | | | | | The explicit usage at Int in the non-primed versions of the functions results in an auto-generated SPEC rule at Int, so even without any SPECIALIZE pragmas, using sh?Enum' at Int should not (need to) result in multiple specialisations.
* Add shsEnum and shrEnumTom Smeding2025-11-18
|
* Also replace replicateScal -> replicatePrim in error messagesTom Smeding2025-11-18
|
* Make first type arg of {m,s}emptyArray the shapeTom Smeding2025-11-17
|
* Rename, organise and cleanupTom Smeding2025-11-17
| | | | | | | Renamings: - *sumOuter1 -> *sumOuter1Prim - *rerank -> *rerankPrim - *replicateScal -> *replicatePrim