Example #1
0
        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));
        }
Example #2
0
        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.");
            }
            }
        }