Projects
Projects
Bestiary
A LaTeX-inspired mathematical computing environment that unifies seven animal-themed C libraries behind a GUI, command-line interpreter, and scripting language
Quaternionic
C library for algebra, arithmetic, and analysis on algebras resulting from the Cayley-Dickson procedure over various fields
OOKAMI
Python library for computations in additive and multiplicative combinatorics on finite subsets of ℤ
fastCD - v1.0.0
fastCD is a lean C kernel for Cayley-Dickson multiplication with a NumPy-compatible Python extension written for researchers and engineers in need of faster Cayley-Dickson multiplication. The key advantage of fastCD is that it implements a new O(N log N) algorithm which, to the author's knowledge, has never been presented before. See the accompanying paper for more information on the mathematical foundations and rigorous derivation of correctness and time complexity. fastCD may not be completely suitable for every application, but it is licensed under the MIT License so that it may be improved upon and adapted to the user's needs completely, with no questions asked.
In addition to this new quasilinear algorithm, both direct Cayley-Dickson multiplication and an algorithm due to Cariow and Cariowa are also included in the library. The default multiplication algorithm for each dimension has been selected based on explicit single-core benchmarking for both single and batched multiplication, and while quasilinear is provably asymptotically the fastest, it is not the fastest for all lower dimensions. The direct and Cariow-Cariowa algorithms are also used for some low dimensions; see Benchmark for more information on this.
Bestiary - v2.0.0: Release the BEASTs!
...the Bundles of Efficient Algorithms for Science and Technology, that is!!
Bestiary is a LaTeX-inspired mathematical computing environment built around seven C-based, animal-themed mathematics libraries. It combines a language, command-line interface, and GUI application so that these libraries can be used together as one unified system. Its core idea is simple: mathematical expressions should be typed the way mathematicians already write them. Each library is referred to as a "BEAST," and provides a set of commands that can be accessed in Bestiary. All commands in Bestiary start with a backslash \ character, and the language is themed after LaTeX, such that many objects can be defined in a way identical to how they would be typed in LaTeX.
Each BEAST is written from scratch in C, and the wxWidgets-based GUI application, which allows for easy access to documentation while working and running multiple Bestiary shells in parallel, is written in the C++ language. For full documentation on each of the hundreds of commands and operations available in Bestiary, see the "Help" tab in the application. More information on each BEAST and its functionality can be found on the git page.
Bestiary is currently in active development, but as of v2.0.0, it can be expected to be stable and efficient for regular use. Version 2.0.0 includes loops, user-defined functions, 2D and 3D plotting, lists, randomness, PDEs, ODEs, statistics and probability, Cayley–Dickson algebras including quaternions, octonions, and beyond, and so much more!! Bestiary has mostly been tested on the GNU/Linux operating system, so it is expected to be less stable on Windows, but it is supported and developed for Windows as well.
Quaternionic - v1.0.1
Quaternionic is a mathematics library written from scratch in C offering implementations of the algebra and arithmetic of algebras resulting from the Cayley-Dickson construction. Supported base fields include the rationals, the reals, complex numbers, arbitrary finite fields, and arbitrary number fields. Quaternionic mainly focuses on quaternion algebras and, secondarily, octonion algebras, but it supports basic algebra and arithmetic for sedenions, trigitaduonions, and arbitrary Cayley-Dickson algebras as well.
Quaternionic is one of the BEASTs in Bestiary and is also suitable for standalone use. It makes use of built-in libraries for fraction arithmetic, complex numbers, linear algebra, and field arithmetic so that it can be used in a fully independent manner, with no additional dependencies. For ease of use in research applications, it is recommended to be used within Bestiary.
Quaternionic is currently in active development. Since it is by itself just a C library, it may be assumed to have full support for any platform using LibC. Anypony interested in contributing code, providing bug reports, or suggesting new features is invited to do so on the git page.
OOKAMI - v1.2.4
The purpose of this project is to provide a set of tools that can be used for computations with subsets of the integers in additive and multiplicative combinatorics. It is designed with my own research goals in mind, and thus it may not meet the needs of other projects exactly, but it is well-documented so that others may use it for their own work. The project is implemented in Python, using NumPy for efficient computations; see Dependencies for a list of all dependencies. Full documentation is available within the docs directory, which is included in every release.
As of v1.2, I consider OOKAMI mostly complete in the sense that there are no more major features or optimizations I intend to add to it for now. I will still push minor releases (e.g. v1.2.x) if patches are necessary to fix bugs or improve basic functioning, or if there are minor features I think to add. If anypony finds a bug or would like to see a feature added, please raise an issue or message me. Of course, since OOKAMI is open source, you may clone this repository and implement a feature if you prefer.
Since OOKAMI is a completed project, I don't intend to
implement any more features or update it unless there are
bugs reported to me. However, I've worked on a rewrite
in C, which I call OOKAMI-ng. OOKAMI-ng is a part of my main project,
Bestiary, and so it will continue to be updated as I work on the project.