The complex class is needed because the probability amplitudes, or the
lengths, of a vector in a Hilbert Space are in general complex. The
state of our quantum memory register may be thought of as a vector in
a Hilbert Space. Each complex number can be set to a complex value,
which is stored internally as a real part, and an imaginary part, both
of which are double precision floating point numbers in this
simulation.