OK, selbst wenn Double keine 4 Byte ist ... Double und Bit-Operationen paßt ebensowenig.
Wenn schon, dann Integer/LongInt.
Also das Integer-Array auf einen Integer und Bit-Operationen runterkürzen,
und dann kann man bestimmt auch die ganzen Fließkomma-Operationen auf einen Int64 beschränken.
Zumindestens sollten sich so bestimmt locker mal über 90% des Codes und damit von der Laufzeit einsparen lassen.