From 4f2d4af5116df4297c4efa9c848274648388fb0c Mon Sep 17 00:00:00 2001 From: Michael Pohoreski Date: Thu, 18 Aug 2016 10:03:46 -0700 Subject: [PATCH] Procedural Javascript - optimize Shr1() --- rpm_proc.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/rpm_proc.js b/rpm_proc.js index c729edb..0973571 100644 --- a/rpm_proc.js +++ b/rpm_proc.js @@ -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; } }