Mathematical Programs

These programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Most are made available under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, but see the License conditions for each individual program.

CRC-32 Cyclic Redundancy Check Algorithm

A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.
See Wikipedia.

This is a demonstration of the method described in Wikipedia.


Date of Easter

There are many programs which compute the date of Easter Sunday.

This is a demonstration of the method described in the Book of Common Prayer.

Date of Easter.

Divison by Multiplication

The Ferranti Mercury Computer (circa 1957) had a floating-point arithmetic unit but did not have a floating-point divide instruction. Floating-point division was performed by scaling the number into the range [0.5, 1.0) and then computing the reciprocal using a Newton-Raphson iteration. The result was then rescaled appropriately.

This is a demonstration of the method used on the Mercury.

Divison by Multiplication.

Drawing Ellipses Using a Shear Transformation

This is a demonstration of using a shear transformation to draw ellipses. It is based on a paper by Nathan Dinsmore.

Drawing Ellipses.

Generating Normally Distributed Pseudorandom Numbers

Two methods to generate Normally Distributed Pseudorandom Numbers.

Normally Distributed Pseudorandom Numbers.

Kaprekar's Routine

This is a program to generate Kaprekar Routine Sequences.
For the historical and mathematical background see this Wikipedia article.

Kaprekar's Routine.

Point Methods to test if a point lies between two other points

Two methods are provided to test if a point (p0) lies between two other points p1 and p2.

Point.isBetween Methods

Prosthaphaeresis - Multiplication Using Cosine Tables

This is a demonstration of a method used to perform multiplication using cosine tables.


Roman Arithmetic

This is a demonstration of the methods that may have been used to perform calculations with numbers represented in Roman Numerals.

Roman Arithmetic.

Last updated Wednesday, February 22, 2023.