public LatticeState BuildLatticeState() { InitAlgorithm algorithm = InitAlgorithm.PRECLASSIFY; List <ModelNode> built_nodes = new List <ModelNode>(); for (int i = 0; i < cores; i++) { List <ModelNode> current_list = par_ext_model_nodes[i]; foreach (ModelNode current_node in current_list) { built_nodes.Add(current_node); } } ModelNode[] ar_built_nodes = built_nodes.ToArray(); Adjacency[] ar_built_edges; try { ar_built_edges = AdjacencyInitializer.InitializeEdges(ref ar_built_nodes, adjacencyradius, algorithm); } catch { ar_built_edges = AdjacencyInitializer.InitializeEdges(ref ar_built_nodes, adjacencyradius, InitAlgorithm.NAIVE); } List <int[]> relevants = CombineRelevants(); //VERY SLOW, needs re-writing if time. ApplyAllTags(ref ar_built_nodes, ref ar_built_edges, ref relevants, ref all_tags); return(new LatticeState(ar_built_nodes, ar_built_edges)); }
public static Adjacency[] InitializeEdges(ref ModelNode[] data, double parameter, InitAlgorithm algorithm) { switch (algorithm) { case InitAlgorithm.NAIVE: { return(InitializeVietorisRipsNaive(ref data, parameter)); } case InitAlgorithm.PRECLASSIFY: { throw new Exception("Error: Not yet implemented."); //return new Adjacency[]{}; } default: { throw new Exception("Error: InitAlgorithm option invalid."); } } }