code: function am1(i,x,w,j,c,n) {
    var this_array = this.array;
    var w_array    = w.array;
    while(--n >= 0) {
      var v = x*this_array[i++]+w_array[j]+c;
      c = Math.floor(v/0x4000000);
      w_array[j++] = v&0x3ffffff;
    }
    return c;
  }
docs: am1: use a single mult and divide to get the high bits, max digit bits should be 26 because max internal value = 2*dvalue^2-2*dvalue (< 2^53)