Still trying to get this working and understand why it maxes out at 81
This commit is contained in:
parent
1e59b55f5e
commit
0ae1d66669
@ -100,11 +100,6 @@ export function chord_survey() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// how to proceed: start with the 120-cell that has five 600-cells inscribed
|
|
||||||
// in it. Take the 120 nodes from one of those 600-cells, and construct a 5-cell
|
|
||||||
// from each such that all of the vertices are on different 600-cells.
|
|
||||||
|
|
||||||
// collect them and output by label because every 5-cell is on all 5 600-cells
|
|
||||||
|
|
||||||
function overlap(c1, c2) {
|
function overlap(c1, c2) {
|
||||||
for( const l in c1 ) {
|
for( const l in c1 ) {
|
||||||
@ -116,13 +111,13 @@ function overlap(c1, c2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function gather_5cells() {
|
export function gather_5cells(cell120) {
|
||||||
const cell120 = POLYTOPES.cell120_inscribed();
|
|
||||||
const CHORD5 = round_dist(Math.sqrt(2.5));
|
const CHORD5 = round_dist(Math.sqrt(2.5));
|
||||||
const bins = [];
|
const bins = [];
|
||||||
|
const all = [];
|
||||||
cell120.nodes.filter((n) => n.label === 1).map((n) => {
|
cell120.nodes.filter((n) => n.label === 1).map((n) => {
|
||||||
const g = distance_group(cell120, n, CHORD5);
|
|
||||||
const cells = [ ];
|
const cells = [ ];
|
||||||
|
const g = distance_group(cell120, n, CHORD5);
|
||||||
for( const pair of g ) {
|
for( const pair of g ) {
|
||||||
let seen = false;
|
let seen = false;
|
||||||
for( const cell of cells ) {
|
for( const cell of cells ) {
|
||||||
@ -146,26 +141,69 @@ export function gather_5cells() {
|
|||||||
cells.push(cell);
|
cells.push(cell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//console.log(`From ${n.id}`);
|
all.push(...cells);
|
||||||
//console.log(cells);
|
});
|
||||||
for( const cell of cells ) {
|
return all;
|
||||||
let binned = false;
|
|
||||||
for( const bin of bins ) {
|
|
||||||
const overlaps = bin.filter((b) => overlap(b, cell));
|
|
||||||
if( overlaps.length === 0 ) {
|
|
||||||
bin.push(cell);
|
|
||||||
binned = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( !binned ) {
|
|
||||||
console.log(`new bin for ${JSON.stringify(cell)}`);
|
|
||||||
bins.push([ cell ]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//console.log(bins);
|
|
||||||
})
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gather_5cells();
|
function audit_5cells(cells) {
|
||||||
|
// this verifies that for each label (a 600-cell set), each of its
|
||||||
|
// vertices is in exactly 7 5-cells. It checks out.
|
||||||
|
|
||||||
|
['1','2','3','4','5'].map((l) => {
|
||||||
|
const sets = {};
|
||||||
|
for( const cell of cells ) {
|
||||||
|
const lv = cell[l];
|
||||||
|
if( !(lv in sets) ) {
|
||||||
|
sets[lv] = [];
|
||||||
|
}
|
||||||
|
sets[lv].push(cell);
|
||||||
|
}
|
||||||
|
for( const lv in sets ) {
|
||||||
|
const ok = ( sets[lv].length === 7 ) ? 'ok' : 'miss';
|
||||||
|
console.log(`${l},${lv},${sets[lv].length},${ok}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function try_120_5_cells(cell120, cells, l) {
|
||||||
|
// iterate over every vertex in the 600-cell defined by label l,
|
||||||
|
// get all 7 5-cells including that vertex, and add them if they are
|
||||||
|
// disjoint with what we already have
|
||||||
|
|
||||||
|
const vertices = cell120.nodes.filter((n) => n.label === l);
|
||||||
|
|
||||||
|
const cellset = [];
|
||||||
|
for( const v of vertices ) {
|
||||||
|
console.log(`Vertex ${v.id}`);
|
||||||
|
const vcells = cells.filter((c) => c[l] === v.id);
|
||||||
|
const overlap_any = (cs, c) => {
|
||||||
|
for( const seen of cs ) {
|
||||||
|
console.log(c);
|
||||||
|
if( overlap(seen, c) ) {
|
||||||
|
console.log("overlap");
|
||||||
|
console.log(seen);
|
||||||
|
console.log(c);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const disjoint = vcells.filter((c) => ! overlap_any(cellset, c));
|
||||||
|
console.log(`Found ${disjoint.length} disjoint cells`);
|
||||||
|
if( disjoint.length > 0 ) {
|
||||||
|
cellset.push(disjoint[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(`Found total of ${cellset.length} disjoint cells`);
|
||||||
|
//console.log(cellset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const cell120 = POLYTOPES.cell120_inscribed();
|
||||||
|
const all5 = gather_5cells(cell120);
|
||||||
|
|
||||||
|
try_120_5_cells(cell120, all5, 1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user