Popularity
7.6
Growing
Activity
3.7
Growing
24
3
12
Monthly Downloads: 133
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
fin alternatives and similar packages
Based on the "Data" category.
Alternatively, view fin alternatives based on common mentions on social networks and blogs.
-
compendium-client
DISCONTINUED. Mu (μ) is a purely functional framework for building micro services. -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text. -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai

Do you think we are missing an alternative of fin or a related project?
README
fin and vec
Vec
vec
provides few approache to work with Vec
:
naive
: explicit recusion- no need to keep constraints around for most functions
- simple
- slow
pull
:Vec n a
represented asFin n -> a
- Fuses well
- Some code is hard to write (e.g.
Traversable
) - relatively simple
inline
, usingInlineInduction
:- exploits how GHC dictionary resolution works
- makes code to unroll completely for staticaly known sizes
- fast in that case
Dependencies
And with dependency flags turned off:
Benchmarks: dotProduct
list
version sets the baseline, built-in fusion seems to kick in.vector
andunboxed
vector are 3x slower.- this library, naive
vec
is even slower Data.Vec.Pull
approach is slower, except- that without conversions it's up to speed with
vector
inline
(usingInlineInduction
over size) is faster than list version.
benchmarking dot product/list
time 23.73 ns (23.61 ns .. 23.88 ns)
1.000 R² (1.000 R² .. 1.000 R²)
mean 23.69 ns (23.58 ns .. 23.89 ns)
std dev 450.1 ps (292.0 ps .. 731.3 ps)
variance introduced by outliers: 27% (moderately inflated)
benchmarking dot product/vector
time 80.74 ns (80.16 ns .. 81.42 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 80.83 ns (80.23 ns .. 82.21 ns)
std dev 2.760 ns (1.657 ns .. 4.830 ns)
variance introduced by outliers: 53% (severely inflated)
benchmarking dot product/unboxed
time 79.95 ns (79.34 ns .. 80.74 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 80.44 ns (79.61 ns .. 82.51 ns)
std dev 4.278 ns (2.029 ns .. 7.869 ns)
variance introduced by outliers: 74% (severely inflated)
benchmarking dot product/vec
time 130.2 ns (129.0 ns .. 131.6 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 130.1 ns (129.1 ns .. 131.7 ns)
std dev 4.185 ns (3.108 ns .. 5.425 ns)
variance introduced by outliers: 49% (moderately inflated)
benchmarking dot product/pull
time 245.3 ns (245.1 ns .. 245.5 ns)
1.000 R² (0.999 R² .. 1.000 R²)
mean 246.3 ns (244.7 ns .. 254.1 ns)
std dev 9.924 ns (409.7 ps .. 22.69 ns)
variance introduced by outliers: 59% (severely inflated)
benchmarking dot product/pull'
time 71.18 ns (70.73 ns .. 71.64 ns)
1.000 R² (1.000 R² .. 1.000 R²)
mean 70.79 ns (70.44 ns .. 71.30 ns)
std dev 1.397 ns (925.3 ps .. 2.095 ns)
variance introduced by outliers: 27% (moderately inflated)
benchmarking dot product/inline
time 20.91 ns (20.64 ns .. 21.25 ns)
0.999 R² (0.998 R² .. 0.999 R²)
mean 21.12 ns (20.90 ns .. 21.37 ns)
std dev 784.4 ps (575.5 ps .. 1.107 ns)
variance introduced by outliers: 60% (severely inflated)