src/bigi/lib/bigi.js
function barrettReduce(x) {
  var self = this
  x.drShiftTo(self.m.t - 1, self.r2)
  if (x.t > self.m.t + 1) {
    x.t = self.m.t + 1
    x.clamp()
  }
  self.mu.multiplyUpperTo(self.r2, self.m.t + 1, self.q3)
  self.m.multiplyLowerTo(self.q3, self.m.t + 1, self.r2)
  while (x.compareTo(self.r2) < 0) x.dAddOffset(1, self.m.t + 1)
  x.subTo(self.r2, x)
  while (x.compareTo(self.m) >= 0) x.subTo(self.m, x)
}
function barrettReduce(x) {
  var self = this
  x.drShiftTo(self.m.t - 1, self.r2)
  if (x.t > self.m.t + 1) {
    x.t = self.m.t + 1
    x.clamp()
  }
  self.mu.multiplyUpperTo(self.r2, self.m.t + 1, self.q3)
  self.m.multiplyLowerTo(self.q3, self.m.t + 1, self.r2)
  while (x.compareTo(self.r2) < 0) x.dAddOffset(1, self.m.t + 1)
  x.subTo(self.r2, x)
  while (x.compareTo(self.m) >= 0) x.subTo(self.m, x)
}
function barrettReduce ( x ) { var self = this x . drShiftTo ( self . m . t - 1 , self . r2 ) if ( x . t > self . m . t + 1 ) { x . t = self . m . t + 1 x . clamp ( ) } self . mu . multiplyUpperTo ( self . r2 , self . m . t + 1 , self . q3 ) self . m . multiplyLowerTo ( self . q3 , self . m . t + 1 , self . r2 ) while ( x . compareTo ( self . r2 ) < 0 ) x . dAddOffset ( 1 , self . m . t + 1 ) x . subTo ( self . r2 , x ) while ( x . compareTo ( self . m ) >= 0 ) x . subTo ( self . m , x ) }
x = x mod m (HAC 14.42)
x = x mod m ( HAC 14 . 42 )