Sha256: d62b33386f7d4f0d261874cdfb0e30aef4c909e1be9b5c5953407d550819df39
Contents?: true
Size: 795 Bytes
Versions: 19
Compression:
Stored size: 795 Bytes
Contents
package com.hurlant.math { use namespace bi_internal; /** * Modular reduction using "classic" algorithm */ internal class ClassicReduction implements IReduction { private var m:BigInteger; public function ClassicReduction(m:BigInteger) { this.m = m; } public function convert(x:BigInteger):BigInteger { if (x.s<0 || x.compareTo(m)>=0) { return x.mod(m); } return x; } public function revert(x:BigInteger):BigInteger { return x; } public function reduce(x:BigInteger):void { x.divRemTo(m, null,x); } public function mulTo(x:BigInteger, y:BigInteger, r:BigInteger):void { x.multiplyTo(y,r); reduce(r); } public function sqrTo(x:BigInteger, r:BigInteger):void { x.squareTo(r); reduce(r); } } }
Version data entries
19 entries across 19 versions & 4 rubygems