Computer Arithmetic Algorithms Simulator

About This Site


This site was designed and programmed to serve as a helpful aid to students taking a class in computer arithmetic, or practitioners in the field who need to brush up on the techniques used by the various algorithms.

The initial programming and layout was done by Yaron Koren in the summer of 1997.

The floating-point addition/subtraction module (for single precison numbers) was programmed by Nikolaos Denis as a final project in the Spring 1998 Digital Computer Arithmetic course.

The floating-point multiplication/division module (for single precison numbers) was programmed by Zhihong Zeng as a final project in the Spring 1998 Digital Computer Arithmetic course.

The floating-point addition/subtraction and multiplication/division modules were extended to double precision numbers by Erica Asai as a final project in the Spring 1999 Digital Computer Arithmetic course.

The division by reciprocation module was programmed by Praveen Mosalikanti as a final project in the Spring 1998 Digital Computer Arithmetic course.

The CSA/Wallace tree module was programmed by Noosha Nayeri as final project in the Spring 2000 Digital Arithmetic course.

The Overturned Stairs CSA tree module was programmed by Puru Sarva as final project in the Spring 2000 Digital Arithmetic course.

The SRT radix 4 division module was programmed by Zhihong Zeng as a second project in the Spring 1998 Digital Computer Arithmetic course.

The SRT radix 8 division module was programmed by David Jasinski as a final project in the Spring 2002 Digital Computer Arithmetic course.

The ripple-carry, Manchester and carry-look-ahead modules were programmed by Sabyasachi Das as a final project in the Spring 1999 Digital Computer Arithmetic course.

The delay calculation in the carry-look-ahead module was modified by Darren Richards in 2002.

The radix conversion module was programmed by Junnan Wu as a final project in the Spring 1999 Digital Computer Arithmetic course.

The floating-point division by convergence module (for single precison numbers) was programmed by Raigir Kamalaker as a final project in the Spring 1999 Digital Computer Arithmetic course.

The carry-select addition module was programmed by Atul Maheshwari as a final project in the Spring 2000 Digital Computer Arithmetic course.

The SD addition/subtraction module was programmed by William Lichtinger as a final project in the Summer 2000 Digital Computer Arithmetic course.

The Residue addition/subtraction/multiplication module was programmed by Christoph Drews as a final project in the Spring 2002 Digital Computer Arithmetic course.

The Hybrid Adder (Lynch and Swartzlander) module was programmed by Ravinder Rachala as a final project in the Spring 2000 Digital Computer Arithmetic course.

The Generalized Conditional-Sum Adder module was programmed by Arunachalam Ramanathan as a final project in the Spring 2002 Digital Computer Arithmetic course.

The division by convergence module with a lookup table (for the first step) was programmed by Mark Handly as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Ling Adder module was programmed by Darren Richards as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Two's complement array multiplier module was programmed by Craig Tainsky as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Sign-Logarithm module was programmed by Tim Peterson as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Error Analysis module was programmed by Tony Uranga as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Fused Multiplier-Adder module was programmed by Mark Bartel as a final project in the Summer 2002 Digital Computer Arithmetic course.

The Radix-4 square root and the square root by convergence modules were programmed by Lei Liang as a final project in the Spring 2002 Digital Computer Arithmetic course.

The SRT with overlapping stages module was programmed by Ray Yeung as a final project in the Fall 2003 Digital Computer Arithmetic course.

Several bugs were discovered by Roger Golliver from Intel, who kindly also provided fixes to these bugs. A bug in a couple of addition algorithms was discovered (and a fix provided) by Marius Padure from Delft University.

Bug reports and comments about problems in the interface are strongly encouraged. Please write to Israel Koren at koren@euler.ecs.umass.edu for all comments and questions.


Last modified August 23, 2002
koren@euler.ecs.umass.edu