Here's some software I've written.
ClAV
This is a “Cluster algebra visualizer” (link). It's a collection of programs to explore mathematical objects called "Quivers" (which encode cluster algebras) that were a major part of my thesis. (They're a type of graph with some more structure.)
These programs are all written in C, and have been used by a handful of other people at this point across quite a few Linux distros (and Mac).
libmath
libmath
(link)
is the library of IEEE-754
floating-point functions (sin, exp,
&c) that I wrote for inclusion
into the standard library of the Myrddin
language Myrddin describes
itself as:
Myrddin does not aim to explore the forefront of type theory or compiler technology. It does not focus on guaranteeing perfect safety. It is satisfied to be a practical, small language.and
libmath
attempts to adhere to that. The
algorithms are chosen for readability,
and references
are provided for those who want to
know more about the background. I
mostly followed a series of papers
by Ping
Tak Peter Tang, with the technique
of “Highly Accurate Tables” of Gal
and Bachelis.
These functions were written as
part of Myrddin's Summer
of Cod program. In order to
show the accuracy, I also wrote fpmath-consensus
,
which allows comparing various
implementations of floating-point
functions.
sispare & sispare-qt
These are my “Simple Spaced Repetition” programs. They use a variation of the Leitner system for remembering things that can be expressed as flash cards.
Sispare-qt (link), in C++ and Qt, is probably the program you want to use. Sispare (link) is the prototype CLI version in Myrddin with libtermdraw.
fgc-section-5
Section 5 of my thesis is a constructive algorithm to realize the cluster ensemble structure. One of the claims of this algorithm is “it can be implemented in software,” so I provide a reference implementation, including tests against more tedious calculation methods.
YAKMO
“Yet Another
Kernel for Math
Operations” (link).
In support of fgc-section-5
,
I wrote a small computer algebra
system to handle laurent polynomials.
Under very (very) specific
circumstances, it outperforms
Mathematica in computations of
Lusztig's calculus.
LLF
A “Lua LaTeX
Formatter” or
“LaTeX
-Like
Formula”, I forget which (link).
LaTeX
formatters
are hard, because just parsing
LaTeX
is Turing complete.
(See the BaSiX
article
here.)
However, LaTeX
is
really a language that needs
reflowing. Therefore, I wrote
llf
, which will reflow
LaTeX
as long as no
\catcode
-trickery is
used. It can be used stand-alone,
or easily hooked up to text editors
that support piping.
As of my degree, llf
has been safely tested without
incident on at least one thesis.