StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
StackGenVis/frontend/node_modules/affine-hull/aff.js

51 lines
956 B

'use strict'
module.exports = affineHull
var orient = require('robust-orientation')
function linearlyIndependent(points, d) {
var nhull = new Array(d+1)
for(var i=0; i<points.length; ++i) {
nhull[i] = points[i]
}
for(var i=0; i<=points.length; ++i) {
for(var j=points.length; j<=d; ++j) {
var x = new Array(d)
for(var k=0; k<d; ++k) {
x[k] = Math.pow(j+1-i, k)
}
nhull[j] = x
}
var o = orient.apply(void 0, nhull)
if(o) {
return true
}
}
return false
}
function affineHull(points) {
var n = points.length
if(n === 0) {
return []
}
if(n === 1) {
return [0]
}
var d = points[0].length
var frame = [ points[0] ]
var index = [ 0 ]
for(var i=1; i<n; ++i) {
frame.push(points[i])
if(!linearlyIndependent(frame, d)) {
frame.pop()
continue
}
index.push(i)
if(index.length === d+1) {
return index
}
}
return index
}