Approximate multiplication for integer constant division and remainder [Available September 2026]

Integer division and remainder are relatively complicated, expensive operations. Most modern processors have at least one integer multiplier unit that has both low latency (typically between 3 and 5 cycles) and high throughput (typically the unit can complete a multiply operation every cycle). In contrast, most modern processors do not have a fast integer division … Read more

Minimum constant big integer multiplication using fixed-size multiplication units [Available for September 2026]

Almost all modern processors provide special-purpose instructions for integer multiplication. However, some applications require integer values that are larger than fit in a single machine word, such as 256 bit integers. We can multiply these big integer values using a sequence of smaller multiplies. For example, multiplying two 256-bit integer values might be completed with … Read more

Minimum hardware constant multiplication with integer linear programming [Available for September 2026]

In some applications, such as many cryptography algorithms, multiplication by a known integer constant is a common operation. It’s well known that integer multiplication with a constant can be computed with a sequence of shifts and adds. Most modern processors already have fast integer multiplication units, so in software it is usually faster to use … Read more

In-place matrix multiplication for rectangular matrices [Available for September 2026]

Matrix multiplication is one of the commonly-used computations across a wide range of applications. For example, most implementations of neural networks implement very large numbers of matrix multiplications. Almost all processor and GPU manufacturers provide libraries with carefully hand-tuned fast matrix multiplication routines. All the best-known algorithms matrix multiplication are out-of-place; that is, the result … Read more

(Allocated) Microworld to teach about solutions to the housing crisis

Microworlds are a type of computer simulation which have proven to be very powerful tools with which to create effective learning experiences. For example a previous project developed one to teach about nati0nal waste management. This project will involve developing a microworld to help teach about the challenges involved in tackling the housing crisis. The … Read more

(Allocated) Microworld to teach about finance

Microworlds are a type of computer simulation which have proven to be very powerful tools with which to create effective learning experiences. For example a previous project developed one to teach about nati0nal waste management. This project will involve developing a microworld to help teach about managing personal finances. The tool is aimed at Transition … Read more

Using Promela/SPIN to verify RTEMS (TAKEN)

TAKEN RTEMS (https://www.rtems.org/) is an open-source real-time operating system widely used in aircraft and spacecraft. It offers a comprehensive API, mostly defined in terms of “managers” that provide calls to perform specific kinds of services or provide specific infrastructure. As part of an activity sponsored by the European Space Agency (ESA) we have developed a … Read more