ad
hmatrix
Our great sponsors
ad | hmatrix | |
---|---|---|
6 | 2 | |
364 | 377 | |
- | 0.3% | |
5.5 | 3.4 | |
about 1 month ago | about 2 months ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ad
-
Is there an implementation of The Simple Essence of Automatic Differentiation (2018)?
Maybe ad?
-
Backpropagation and Accelerate
I’ll also link the ad package here in case someone can speak to its value over backprop https://github.com/ekmett/ad
-
[ad] Haskell Revitalisation
Apologies in advance for disappointing a few people but the [ad] part in the title doesn't mean Automatic Differentiation but rather means "advertisement".
-
Let's Program a Calculus Student II: Turning Symbolic Differentiation Automatic
Hi everybody! A couple weeks ago, I made a blog post talking about how recursion and pattern matching could be used to translate Calculus formulas into Haskell. This is a follow-up exploring how to use automatic differentiation to calculate those same derivatives as an example of cool stuff that polymorphism allows us to do. (I learned this idea from the ad package and really fell in love with how elegant it is)
- Monthly Hask Anything (March 2022)
- What are some ways I could tickle my (beginner) haskell-brain with something *useful*?
hmatrix
-
Rust concepts I wish I learned earlier
Two things that might help Rust a lot despite the complexity is the tooling and the ecosystem. Cargo is good, the compiler is extremely helpful, and there are a lot of crates to build on for all sorts of tasks.
For example, if I need to use simulated annealing to solve an optimization problem, there already exist libraries that implement that algorithm well.[1] Unfortunately, the Haskell library for this seems to be unmaintained[2] and so does the OCaml library that I can find.[3] Similarly, Agda, Idris, and Lean 4 all seem like great languages. But not having libraries for one's tasks is a big obstacle to adoption.
Nim looks very promising. (Surprisingly so to me.) Hopefully they will succeed at gaining wider recognition and growing a healthy ecosystem.
[1] E.g., https://github.com/argmin-rs/argmin
[2] https://hackage.haskell.org/package/hmatrix-gsl-0.19.0.1 was released in 2018. (Although there are newer commits in the GitHub repo, https://github.com/haskell-numerics/hmatrix. Not too sure what is going on.)
-
Numpy style linear algebra
hmatrix covers the essentials; less feature-complete than python/matlab, partly because several orders of magnitudes less people use it, partly because it's meant as the "essential core".
What are some alternatives?
modular-arithmetic - A useful type for working with integers modulo some constant.
hTensor - Multidimensional arrays and simple tensor computations
nimber - Finite nimber arithmetic
roots - 1-dimensional root-finding algorithms in Haskell
hmatrix-repa - Compatability between hmatrix and repa matrices and vectors
search - infinite search in finite time with Hilbert's epsilon
math-functions - Special mathematical functions
gamma - Haskell implementation of gamma and incomplete gamma functions
hmatrix-quadprogpp - bindings to quadprog++
moving-averages
hmatrix-nipals - Haskell library for Nonlinear Iterative Partial Least Squares method for Principal Components Analysis on large datasets