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.