//package alg.inflectedJOS; // //import java.util.List; //import java.util.concurrent.RecursiveAction; // //import data.Sentence; //import data.Statistics; // //public class ForkJoin extends RecursiveAction { // private static final long serialVersionUID = -1260951004477299634L; // // private static final int ACCEPTABLE_SIZE = 1000; // private List corpus; // private Statistics stats; // private int start; // private int end; // // // /** // * Constructor for subproblems. // */ // private ForkJoin(List corpus, int start, int end, Statistics stats) { // this.corpus = corpus; // this.start = start; // this.end = end; // this.stats = stats; // } // // /** // * Default constructor for the initial problem // */ // public ForkJoin(List corpus, Statistics stats) { // this.corpus = corpus; // this.start = 0; // this.end = corpus.size(); // this.stats = stats; // } // // private void computeDirectly() { // List subCorpus = corpus.subList(start, end); // // if (stats.isTaxonomySet()) { // InflectedJOSCount.calculateForAll(subCorpus, stats, stats.getInflectedJosTaxonomy()); // } else { // InflectedJOSCount.calculateForAll(subCorpus, stats, null); // } // } // // @Override // protected void compute() { // int subCorpusSize = end - start; // // if (subCorpusSize < ACCEPTABLE_SIZE) { // computeDirectly(); // } else { // int mid = start + subCorpusSize / 2; // ForkJoin left = new ForkJoin(corpus, start, mid, stats); // ForkJoin right = new ForkJoin(corpus, mid, end, stats); // // // fork (push to queue)-> compute -> join // left.fork(); // right.fork(); // left.join(); // right.join(); // } // } //}