reduce-algebra
Bessels.jl
reduce-algebra | Bessels.jl | |
---|---|---|
3 | 2 | |
30 | 76 | |
- | - | |
9.3 | 5.4 | |
5 days ago | 8 days ago | |
Julia | ||
GNU General Public License v3.0 or later | MIT 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.
reduce-algebra
-
An Apologia of Lazy Evaluation
Usually the arguments are a) it provides runtime access to the source (which for example is useful in R), b) runtime introspection is easier to understand (for the proponents) and c) macros are too static (they want more flexibility at runtime). For example authors of the REDUCE computer algebra system disliked Common Lisp for the lack of FEXPRs and that's why they stayed away from it: https://reduce-algebra.sourceforge.io/ .
> The languages you mention probably
No, see above.
-
Maxima: A computer algebra system written in Common Lisp
Reduce is another lisp based computer algebra system from the prehistoric times, now open sourced.
https://en.wikipedia.org/wiki/Reduce_(computer_algebra_syste...
https://reduce-algebra.sourceforge.io/
I paid money for a Reduce release for RISCOS back in the last ice age. I recollect having to register my licence with the Rand Corporation for some reason.
-
A Modern Fortran Scientific Programming Ecosystem
I idly wonder how these compare to the arbitrary-precision implementations in REDUCE (https://github.com/reduce-algebra/reduce-algebra/blob/master...) - written mostly by me, 30 years ago in the unusual, Lisp-based but largely procedural, language of REDUCE. Can't remember much about the subject now.
The citations in the Julia source file are certainly newer - Abramowitz and Stegun was basically all I had.
I think the REDUCE functions were considered quite fast (for higher precision) at the time, but it was certainly true that they weren't tested as thoroughly as would be the norm now.
Bessels.jl
-
Cosine Implementation in C
https://github.com/JuliaMath/Bessels.jl/blob/master/src/bess...
Thanks! I love it, so easy to understand and follow.
My favourite work on the subject is Fredrik Johansson's:
https://github.com/fredrik-johansson/arb
Whenever I feel down and without energy I just read something in there
-
A Modern Fortran Scientific Programming Ecosystem
Most of the old Fortran code isn't that great. To the extent it's optimized, it's optimized for PDP era hardware where memory was fast, floating point was slow, fma didn't exist, vectorization didn't exist, computers weren't fast enough to do tedious symbolic math to find better routines, and they weren't fast enough to test hundreds of millions of inputs to ensure correctness and accuracy. The datastructures, algorithms and tuning and testing were never great, and are worse on modern computers. For a simple example of how much of a difference this can make, look at https://github.com/JuliaMath/Bessels.jl which is often 10x faster than AMOS (the old reliable Fortran code).
What are some alternatives?
maxima-client - Maxima client
stdlib - Fortran Standard Library
symengine - SymEngine is a fast symbolic manipulation library, written in C++
The-RLIBM-Project - A combined repository for all RLIBM prototypes
SIunits - A Scheme function to format physical quantities according to SI conventions in TeXmacs
projects
FastTrig - Arduino library with interpolated lookup for sin() and cos()
musl - unofficial musl mirror git://git.musl-libc.org/musl
maxima-jupyter - A Maxima kernel for Jupyter, based on CL-Jupyter (Common Lisp kernel)
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.