refactored *= to use a heap so that floating point arithmetic error is reduced. This resulted in a dependency on a Fibonacci heap definition