Procedural Javascript - optimize Shr1()

This commit is contained in:
Michael Pohoreski 2016-08-18 10:03:46 -07:00
parent 2dbc120e02
commit 4f2d4af511
1 changed files with 11 additions and 8 deletions

View File

@ -156,17 +156,20 @@ function Shr1( array )
var i;
var n = array.length;
var carry = 0;
var q = 0;
var div = 0;
var rem = 0;
var sum = 0;
for( i = n-1; i >= 0; --i )
{
div = array[ i ] + carry; // dividend
q = (div / 2) | 0; // 2 is divisor
array[i] = q;
rem = div - q*2; // 2 is divisor
carry = rem * BASE;
// Optimized
sum = array[i] + carry;
array[i] = (sum / 2) | 0;
carry = (sum & 1) ? BASE : 0;
// Original
// div = array[ i ] + carry; // dividend
// q = (div / 2) | 0; // 2 is divisor
// array[i] = q;
// rem = div - q*2; // 2 is divisor
// carry = rem * BASE;
}
}