'use strict' module.exports = convexHullnD var ich = require('incremental-convex-hull') var aff = require('affine-hull') function permute(points, front) { var n = points.length var npoints = new Array(n) for(var i=0; i= front[k]) { x += 1 } } c[j] = x } } } return cells } function convexHullnD(points, d) { try { return ich(points, true) } catch(e) { //If point set is degenerate, try to find a basis and rerun it var ah = aff(points) if(ah.length <= d) { //No basis, no try return [] } var npoints = permute(points, ah) var nhull = ich(npoints, true) return invPermute(nhull, ah) } }