Home

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.

CRC-32.

### 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.

Prosthaphaeresis.

### 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.