##
Numerical Methods, MAT 350

Autumn 2001

## Homework: Machine epsilon

### Due Wednesday, September 5, 2001 in class

As a warm-up we will do some calculations using binary numbers.
Be sure to show your work!

- How many keys are on a piano keyboard? Write this number
as a binary integer.
- In what year were you born? Write this number as
a binary integer. Write it as binary floating point
number.
- I have 4-byte floating point number on a computer where machine
epsilon is equal to
`5.96046E-8`

. How many binary digits
are in the mantissa and in the exponent?

Here is the programming part of your assignment.

- Write your own program to calculate machine epsilon for
double precision floating point numbers. We will discuss in
class strategies for doing this.
- Find a standard subroutine from the Internet which
returns machine epsilon. See the
introduction to downloading standard subroutines
- The instructions for using this routine are somewhat obscure.
`B`

is the base of the floating point numbers and
`T`

is the number of bits used to hold the mantissa.
Thus,
B**(1-T), THE LARGEST RELATIVE SPACING

is machine epsilon.
- Use the standard subroutine to calculate machine epsilon.
You should call the subroutine from the program you wrote.
- Based on your results (and the discussion in class),
calculate how many bits are use to store the mantissa
and and exponent. Explain your answer.
Double precision numbers are generally stored in 8 bytes
of memory while single precision numbers are stored in 4 bytes of
memory.
- Repeat the entire exercise for single precision floating point numbers.

If you get stuck, please don't spend too much time trying to
fix the problem yourself: get help from me or from another
student. The main purpose of this homework is to get you started
with using the computers.