src/0-legacy/compare/cmp.js
export const bcmp_t = function(){
/**
* Compares two big endian arrays, |a| >= |b|
*
* @param {array} a first operand
* @param {int} ai a left
* @param {int} aj a right
* @param {array} b second operand
* @param {int} bi b left
* @param {int} bj b right
*
* @return {int} 1 if a > b; 0 if a = b; -1 otherwise.
*/
return function(a, ai, aj, b, bi, bj){
var tmp = aj - bj + bi;
for (; ai < tmp; ++ai)
if (a[ai] > 0) return 1;
// same size aj - ai === bj - bi
for (; ai < aj; ++ai, ++bi) {
if (a[ai] > b[bi]) return 1;
if (a[ai] < b[bi]) return -1;
}
return 0;
};
};
export const lcmp_t = function(){
/**
* Compares two little endian arrays, |a| >= |b|
*
* @param {array} a first operand
* @param {int} ai a left
* @param {int} aj a right
* @param {array} b second operand
* @param {int} bi b left
* @param {int} bj b right
*
* @return {int} 1 if a > b; 0 if a = b; -1 otherwise.
*/
return function(a, ai, aj, b, bi, bj){
var tmp = ai + bj - bi;
--aj; --bj;
for (; aj >= tmp; --aj)
if (a[aj] > 0) return 1;
// same size aj - ai === bj - bi
for (; aj >= ai; --aj, --bj) {
if (a[aj] > b[bj]) return 1;
if (a[aj] < b[bj]) return -1;
}
return 0;
};
};