Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

linear-sum-assignment

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

linear-sum-assignment - npm Package Compare versions

Comparing version 1.0.5 to 1.0.7

26

lib-esm/getShortestPath.js

@@ -1,10 +0,10 @@

import { xSequentialFill } from 'ml-spectra-processing';
import { xSequentialFillFromTo } from 'ml-spectra-processing';
export function getShortestPath(options) {
let { currUnAssCol, dualVariableForColumns, dualVariableForRows, rowAssignments, columnAssignments, matrix, } = options;
let nbRows = matrix.rows;
let nbColumns = matrix.columns;
let pred = new Float64Array(nbRows);
let scannedColumns = new Float64Array(nbColumns);
let scannedRows = new Float64Array(nbRows);
let rows2Scan = Array.from(xSequentialFill({ from: 0, to: nbRows - 1 }));
const { currUnAssCol, dualVariableForColumns, dualVariableForRows, rowAssignments, columnAssignments, matrix, } = options;
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
const pred = new Float64Array(nbRows);
const scannedColumns = new Float64Array(nbColumns);
const scannedRows = new Float64Array(nbRows);
const rows2Scan = Array.from(xSequentialFillFromTo({ from: 0, to: nbRows - 1, size: nbRows }));
let numRows2Scan = nbRows;

@@ -14,3 +14,3 @@ let sink = -1;

let curColumn = currUnAssCol;
let shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
const shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
while (sink === -1) {

@@ -21,4 +21,4 @@ scannedColumns[curColumn] = 1;

for (let curRowScan = 0; curRowScan < numRows2Scan; curRowScan++) {
let curRow = rows2Scan[curRowScan];
let reducedCost = delta +
const curRow = rows2Scan[curRowScan];
const reducedCost = delta +
matrix.get(curRow, curColumn) -

@@ -39,3 +39,3 @@ dualVariableForColumns[curColumn] -

}
let closestRow = rows2Scan[closestRowScan];
const closestRow = rows2Scan[closestRowScan];
scannedRows[closestRow] = 1;

@@ -73,2 +73,2 @@ numRows2Scan -= 1;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFNob3J0ZXN0UGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXeEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUErQjtJQUM3RCxJQUFJLEVBQ0YsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsR0FBRyxPQUFPLENBQUM7SUFFWixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3pCLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFL0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsSUFBSSxjQUFjLEdBQUcsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsSUFBSSxXQUFXLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0MsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUUxQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNkLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQztJQUM3QixJQUFJLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4RSxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsRUFB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFNob3J0ZXN0UGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVc5RCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQStCO0lBQzdELE1BQU0sRUFDSixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVqQyxNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMxQixxQkFBcUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQ2pFLENBQUM7SUFDRixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUM7SUFFMUIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDZCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDN0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUUsT0FB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

@@ -19,5 +19,5 @@ import { Matrix } from 'ml-matrix';

}
let nbRows = matrix.rows;
let nbColumns = matrix.columns;
let matrixDelta = maximaze ? matrix.max() : matrix.min();
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
const matrixDelta = maximaze ? matrix.max() : matrix.min();
matrix = matrix.subtract(matrixDelta);

@@ -31,3 +31,3 @@ if (maximaze)

for (let currUnAssCol = 0; currUnAssCol < nbColumns; currUnAssCol++) {
let currentAugmenting = getShortestPath({
const currentAugmenting = getShortestPath({
matrix,

@@ -40,3 +40,3 @@ currUnAssCol,

});
let { sink, pred } = currentAugmenting;
const { sink, pred } = currentAugmenting;
if (sink === -1) {

@@ -56,3 +56,3 @@ return {

rowAssignments[j] = i;
let h = columnAssignments[i];
const h = columnAssignments[i];
columnAssignments[i] = j;

@@ -84,2 +84,2 @@ j = h;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFVcEQ7OztHQUdHO0FBRUgsTUFBTSxVQUFVLG1CQUFtQjtBQUNqQzs7R0FFRztBQUNILEtBQTZCLEVBQzdCLFVBQW1CLEVBQUU7SUFFckIsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFcEMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsSUFBSSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDN0I7SUFFRCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3pCLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFL0IsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6RCxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVE7UUFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRDLElBQUksY0FBYyxHQUFnQixJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMs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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFVcEQ7OztHQUdHO0FBRUgsTUFBTSxVQUFVLG1CQUFtQjtBQUNqQzs7R0FFRztBQUNILEtBQTZCLEVBQzdCLFVBQW1CLEVBQUU7SUFFckIsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFcEMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsSUFBSSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMzQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRWpDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsSUFBSSxRQUFRO1FBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QyxJQUFJLGNBQWMsR0FBZ0IsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMs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

@@ -6,9 +6,9 @@ "use strict";

function getShortestPath(options) {
let { currUnAssCol, dualVariableForColumns, dualVariableForRows, rowAssignments, columnAssignments, matrix, } = options;
let nbRows = matrix.rows;
let nbColumns = matrix.columns;
let pred = new Float64Array(nbRows);
let scannedColumns = new Float64Array(nbColumns);
let scannedRows = new Float64Array(nbRows);
let rows2Scan = Array.from((0, ml_spectra_processing_1.xSequentialFill)({ from: 0, to: nbRows - 1 }));
const { currUnAssCol, dualVariableForColumns, dualVariableForRows, rowAssignments, columnAssignments, matrix, } = options;
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
const pred = new Float64Array(nbRows);
const scannedColumns = new Float64Array(nbColumns);
const scannedRows = new Float64Array(nbRows);
const rows2Scan = Array.from((0, ml_spectra_processing_1.xSequentialFillFromTo)({ from: 0, to: nbRows - 1, size: nbRows }));
let numRows2Scan = nbRows;

@@ -18,3 +18,3 @@ let sink = -1;

let curColumn = currUnAssCol;
let shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
const shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
while (sink === -1) {

@@ -25,4 +25,4 @@ scannedColumns[curColumn] = 1;

for (let curRowScan = 0; curRowScan < numRows2Scan; curRowScan++) {
let curRow = rows2Scan[curRowScan];
let reducedCost = delta +
const curRow = rows2Scan[curRowScan];
const reducedCost = delta +
matrix.get(curRow, curColumn) -

@@ -43,3 +43,3 @@ dualVariableForColumns[curColumn] -

}
let closestRow = rows2Scan[closestRowScan];
const closestRow = rows2Scan[closestRowScan];
scannedRows[closestRow] = 1;

@@ -78,2 +78,2 @@ numRows2Scan -= 1;

exports.getShortestPath = getShortestPath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFNob3J0ZXN0UGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpRUFBd0Q7QUFXeEQsU0FBZ0IsZUFBZSxDQUFDLE9BQStCO0lBQzdELElBQUksRUFDRixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxHQUFHLE9BQU8sQ0FBQztJQUVaLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDekIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUUvQixJQUFJLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxJQUFJLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxJQUFJLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsdUNBQWUsRUFBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBRTFCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQzdCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ2xCLGNBQWMsQ0FBQyxTQUFTLENB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFNob3J0ZXN0UGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpRUFBOEQ7QUFXOUQsU0FBZ0IsZUFBZSxDQUFDLE9BQStCO0lBQzdELE1BQU0sRUFDSixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDM0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVqQyxNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMxQixJQUFBLDZDQUFxQixFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FDakUsQ0FBQztJQUNGLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUUxQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNkLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQztJQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRSxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxD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

@@ -22,5 +22,5 @@ "use strict";

}
let nbRows = matrix.rows;
let nbColumns = matrix.columns;
let matrixDelta = maximaze ? matrix.max() : matrix.min();
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
const matrixDelta = maximaze ? matrix.max() : matrix.min();
matrix = matrix.subtract(matrixDelta);

@@ -34,3 +34,3 @@ if (maximaze)

for (let currUnAssCol = 0; currUnAssCol < nbColumns; currUnAssCol++) {
let currentAugmenting = (0, getShortestPath_1.getShortestPath)({
const currentAugmenting = (0, getShortestPath_1.getShortestPath)({
matrix,

@@ -43,3 +43,3 @@ currUnAssCol,

});
let { sink, pred } = currentAugmenting;
const { sink, pred } = currentAugmenting;
if (sink === -1) {

@@ -59,3 +59,3 @@ return {

rowAssignments[j] = i;
let h = columnAssignments[i];
const h = columnAssignments[i];
columnAssignments[i] = j;

@@ -88,2 +88,2 @@ j = h;

exports.linearSumAssignment = linearSumAssignment;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQW1DO0FBRW5DLHVEQUFvRDtBQVVwRDs7O0dBR0c7QUFFSCxTQUFnQixtQkFBbUI7QUFDakM7O0dBRUc7QUFDSCxLQUE2QixFQUM3QixVQUFtQixFQUFFO0lBRXJCLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXBDLElBQUksTUFBTSxHQUFHLGtCQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNoQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDekIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUUvQixJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLElBQUksUUFBUTtRQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEMsSUFBSSxjQUFjLEdBQWdCLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLElBQUksaUJBQWlCLEdBQWdCLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFD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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQW1DO0FBRW5DLHVEQUFvRDtBQVVwRDs7O0dBR0c7QUFFSCxTQUFnQixtQkFBbUI7QUFDakM7O0dBRUc7QUFDSCxLQUE2QixFQUM3QixVQUFtQixFQUFFO0lBRXJCLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXBDLElBQUksTUFBTSxHQUFHLGtCQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzNCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFFakMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzRCxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVE7UUFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRDLElBQUksY0FBYyxHQUFnQixJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxJQUFJLGlCQUFpQixHQUFnQixJQUFJLFlBQVksQ0FBQyxTQUFT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
{
"name": "linear-sum-assignment",
"version": "1.0.5",
"version": "1.0.7",
"description": "it performs a linear sum assignment even if the cost matrix is rectangular.",

@@ -21,3 +21,3 @@ "main": "./lib/index.js",

"eslint-fix": "npm run eslint -- --fix",
"prepublishOnly": "npm run tsc",
"prepack": "npm run tsc",
"prettier": "prettier --check src",

@@ -34,8 +34,8 @@ "prettier-write": "prettier --write src",

"type": "git",
"url": "git+https://github.com/jobo322/linear-sum-assignment.git"
"url": "git+https://github.com/mljs/linear-sum-assignment.git"
},
"bugs": {
"url": "https://github.com/jobo322/linear-sum-assignment/issues"
"url": "https://github.com/mljs/linear-sum-assignment/issues"
},
"homepage": "https://github.com/jobo322/linear-sum-assignment#readme",
"homepage": "https://github.com/mljs/linear-sum-assignment#readme",
"jest": {

@@ -53,18 +53,18 @@ "preset": "ts-jest",

"dependencies": {
"cheminfo-types": "^1.4.0",
"cheminfo-types": "^1.7.3",
"install": "^0.13.0",
"ml-matrix": "^6.10.4",
"ml-spectra-processing": "^12.0.0"
"ml-matrix": "^6.11.0",
"ml-spectra-processing": "^14.2.2"
},
"devDependencies": {
"@types/jest": "^29.5.0",
"eslint": "^8.36.0",
"eslint-config-cheminfo-typescript": "^11.3.1",
"jest": "^29.5.0",
"@types/jest": "^29.5.12",
"eslint": "^8.57.0",
"eslint-config-cheminfo-typescript": "^12.2.0",
"jest": "^29.7.0",
"jest-matcher-deep-close-to": "^3.0.2",
"prettier": "^2.8.7",
"rimraf": "^4.4.1",
"ts-jest": "^29.0.5",
"typescript": "^5.0.2"
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"ts-jest": "^29.1.2",
"typescript": "^5.4.2"
}
}

@@ -72,7 +72,7 @@ # linear sum assignment

[npm-url]: https://www.npmjs.com/package/linearSumAssignment
[ci-image]: https://github.com/jobo322/linearSumAssignment/workflows/Node.js%20CI/badge.svg?branch=main
[ci-url]: https://github.com/jobo322/linearSumAssignment/actions?query=workflow%3A%22Node.js+CI%22
[codecov-image]: https://img.shields.io/codecov/c/github/jobo322/linearSumAssignment.svg
[codecov-url]: https://codecov.io/gh/jobo322/linearSumAssignment
[ci-image]: https://github.com/mljs/linear-sum-assignment/workflows/Node.js%20CI/badge.svg?branch=main
[ci-url]: https://github.com/mljs/linear-sum-assignment/actions?query=workflow%3A%22Node.js+CI%22
[codecov-image]: https://img.shields.io/codecov/c/github/mljs/linear-sum-assignment.svg
[codecov-url]: https://codecov.io/gh/mljs/linear-sum-assignment
[download-image]: https://img.shields.io/npm/dm/linearSumAssignment.svg
[download-url]: https://www.npmjs.com/package/linearSumAssignment
import { DoubleArray } from 'cheminfo-types';
import type { Matrix } from 'ml-matrix';
import { xSequentialFill } from 'ml-spectra-processing';
import { xSequentialFillFromTo } from 'ml-spectra-processing';

@@ -15,3 +15,3 @@ interface GetShortestPathOptions {

export function getShortestPath(options: GetShortestPathOptions) {
let {
const {
currUnAssCol,

@@ -25,10 +25,12 @@ dualVariableForColumns,

let nbRows = matrix.rows;
let nbColumns = matrix.columns;
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
let pred = new Float64Array(nbRows);
let scannedColumns = new Float64Array(nbColumns);
let scannedRows = new Float64Array(nbRows);
const pred = new Float64Array(nbRows);
const scannedColumns = new Float64Array(nbColumns);
const scannedRows = new Float64Array(nbRows);
let rows2Scan = Array.from(xSequentialFill({ from: 0, to: nbRows - 1 }));
const rows2Scan = Array.from(
xSequentialFillFromTo({ from: 0, to: nbRows - 1, size: nbRows }),
);
let numRows2Scan = nbRows;

@@ -39,3 +41,3 @@

let curColumn = currUnAssCol;
let shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
const shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);
while (sink === -1) {

@@ -46,5 +48,5 @@ scannedColumns[curColumn] = 1;

for (let curRowScan = 0; curRowScan < numRows2Scan; curRowScan++) {
let curRow = rows2Scan[curRowScan];
const curRow = rows2Scan[curRowScan];
let reducedCost =
const reducedCost =
delta +

@@ -67,3 +69,3 @@ matrix.get(curRow, curColumn) -

}
let closestRow = rows2Scan[closestRowScan];
const closestRow = rows2Scan[closestRowScan];
scannedRows[closestRow] = 1;

@@ -70,0 +72,0 @@ numRows2Scan -= 1;

@@ -35,6 +35,6 @@ import { DoubleArray } from 'cheminfo-types';

let nbRows = matrix.rows;
let nbColumns = matrix.columns;
const nbRows = matrix.rows;
const nbColumns = matrix.columns;
let matrixDelta = maximaze ? matrix.max() : matrix.min();
const matrixDelta = maximaze ? matrix.max() : matrix.min();
matrix = matrix.subtract(matrixDelta);

@@ -49,3 +49,3 @@ if (maximaze) matrix = matrix.mul(-1);

for (let currUnAssCol = 0; currUnAssCol < nbColumns; currUnAssCol++) {
let currentAugmenting = getShortestPath({
const currentAugmenting = getShortestPath({
matrix,

@@ -58,3 +58,3 @@ currUnAssCol,

});
let { sink, pred } = currentAugmenting;
const { sink, pred } = currentAugmenting;

@@ -76,3 +76,3 @@ if (sink === -1) {

rowAssignments[j] = i;
let h = columnAssignments[i];
const h = columnAssignments[i];
columnAssignments[i] = j;

@@ -79,0 +79,0 @@ j = h;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc