public Set<T> keySet() { return this.counts.keySet(); }
public Set<T> keySet() { return this.counts.keySet(); }
private Scored<C>[][] toArray(TObjectDoubleHashMap<C>[] maps) { Scored<C>[][] array = new Scored[maps.length][]; for(int i = 0; i < maps.length; ++i) { TObjectDoubleHashMap<C> map = maps[i]; Scored<C>[] scoredCandidates = new Scored[map.size()]; int j = 0; for (C candidate : map.keySet()) { scoredCandidates[j++] = new Scored(candidate, map.get(candidate)); } Arrays.sort(scoredCandidates, Scored.<C>desc()); array[i] = scoredCandidates; } return array; }
@Override public TObjectDoubleHashMap<MolecularFormula> recombinate(TObjectDoubleHashMap<MolecularFormula> source, double normalizationConstant) { final ArrayList<MolecularFormula> losses = new ArrayList<MolecularFormula>(source.keySet().size()); source.forEachEntry(new TObjectDoubleProcedure<MolecularFormula>() { @Override public boolean execute(MolecularFormula a, double b) { if (b >= 0) losses.add(a); return true; } }); final TObjectDoubleHashMap<MolecularFormula> recs = new TObjectDoubleHashMap<MolecularFormula>(source.size() * source.size() * source.size()); List<MolecularFormula> src = new ArrayList<MolecularFormula>(losses); final double gamma = 10; for (int i = 2; i <= 3; ++i) { final double score = Math.log10(gamma / i); final ArrayList<MolecularFormula> newSrc = new ArrayList<MolecularFormula>(); for (MolecularFormula f : losses) { for (MolecularFormula g : src) { newSrc.add(f.add(g)); } } src = newSrc; for (MolecularFormula f : src) recs.put(f, score); } return recs; }
@Override public TObjectDoubleHashMap<MolecularFormula> recombinate(TObjectDoubleHashMap<MolecularFormula> source, double normalizationConstant) { final TObjectDoubleHashMap<MolecularFormula> recombination = new TObjectDoubleHashMap<MolecularFormula>(source.size() * source.size()); final List<MolecularFormula> sourceList = new ArrayList<MolecularFormula>(source.keySet()); for (int i = 0; i < sourceList.size(); ++i) { final MolecularFormula a = sourceList.get(i); final double aScore = lossSizeScorer.score(a) + source.get(a) - normalizationConstant; for (int j = i; j < sourceList.size(); ++j) { final MolecularFormula b = sourceList.get(j); final double bScore = lossSizeScorer.score(b) + source.get(b) - normalizationConstant; final MolecularFormula combination = a.add(b); final double abScore = lossSizeScorer.score(combination); final double combinatedScore = (aScore + bScore) - abScore + normalizationConstant + penalty; if (combinatedScore > 0d) { Double sc = source.get(combination); if (sc == null || sc.doubleValue() < combinatedScore) { recombination.put(combination, combinatedScore); } } } } return recombination; }
@Override public TObjectDoubleHashMap<MolecularFormula> recombinate(TObjectDoubleHashMap<MolecularFormula> source, double normalizationConstant) { final TObjectDoubleHashMap<MolecularFormula> recombination = new TObjectDoubleHashMap<MolecularFormula> (source.size()*losses.size()); for (MolecularFormula loss : losses) { for (MolecularFormula f : source.keySet()) { final MolecularFormula recomb = loss.add(f); final double score = source.get(f)+penalty; if (score < 0) continue; if (!source.containsKey(recomb) || source.get(recomb)<score) recombination.put(recomb, score); } } return recombination; }
@Override public TObjectDoubleHashMap<MolecularFormula> recombinate(TObjectDoubleHashMap<MolecularFormula> source, double normalizationConstant) { final TObjectDoubleHashMap<MolecularFormula> recombination = new TObjectDoubleHashMap<MolecularFormula>(source.size() * source.size()); final List<MolecularFormula> sourceList = new ArrayList<MolecularFormula>(source.keySet()); for (int i = 0; i < sourceList.size(); ++i) { final MolecularFormula a = sourceList.get(i); if (source.get(a) < 0) continue; final double aScore = lossSizeScorer.score(a) + source.get(a); for (int j = i; j < sourceList.size(); ++j) { final MolecularFormula b = sourceList.get(j); if (source.get(b) < 0) continue; final double bScore = lossSizeScorer.score(b) + source.get(b); final MolecularFormula combination = a.add(b); final double combinationScore = lossSizeScorer.score(combination) + source.get(combination); final double recombinationScore = Math.min(aScore, bScore) + penalty; if (recombinationScore > combinationScore) { final double finalScore = recombinationScore - lossSizeScorer.score(combination); recombination.put(combination, finalScore); } } } return recombination; }
@Override public <G, D, L> void exportParameters(ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) { final D radicals = document.newDictionary(); for (MolecularFormula f : freeRadicals.keySet()) { document.addToDictionary(radicals, f.toString(), freeRadicals.get(f)); } document.addDictionaryToDictionary(dictionary, "commonRadicals", radicals); document.addToDictionary(dictionary, "radicalPenalty", generalRadicalScore); document.addToDictionary(dictionary, "normalization", normalization); } }
for (final A x : cats.keySet()) Pj.add((cats.get(x) / totalCount) * (cats.get(x) / totalCount));
for (final A x : cats.keySet()) Pj.add((cats.get(x) / totalCount) * (cats.get(x) / totalCount));
for (String yoVariableName : buttons.keySet())
for (String yoVariableName : buttons.keySet())
for (String yoVariableName : buttons.keySet())