@Override public String getString(int id) { assert id < _idToValueMap.size(); return (Float.valueOf(_idToValueMap.getFloat(id)).toString()); } }
@Override public float getFloat(int id) { assert id < _idToValueMap.size(); return _idToValueMap.get(id); }
@Override public int put(float value) { int id = _valueToIdMap.get(value); if (id == INVALID_KEY) { id = _idToValueMap.size(); _valueToIdMap.put(value, id); _idToValueMap.add(value); } return id; }
private static float[] filterFloats(FloatSet floatSet, float[] source) { FloatList floatList = new FloatArrayList(); for (float value : source) { if (floatSet.contains(value)) { floatList.add(value); } } if (floatList.size() == source.length) { return source; } else { return floatList.toFloatArray(); } }
@Override public void size(final int size) { synchronized (sync) { list.size(size); } } @Override
@Override public void size(final int size) { list.size(size); } @Override
@Override public long size64() { return list.size(); } @Override
@Override public void size(final long size) { list.size(intIndex(size)); } @Override
@Override public boolean addAll(final int index, final FloatList l) { ensureIndex(index); final int n = l.size(); if (n == 0) return false; grow(size + n); if (index != size) System.arraycopy(a, index, a, index + n, size - index); l.getElements(0, a, index, n); size += n; assert size <= a.length; return true; } @Override
/** * Shuffles the specified list using the specified pseudorandom number * generator. * * @param l * the list to be shuffled. * @param random * a pseudorandom number generator. * @return {@code l}. */ public static FloatList shuffle(final FloatList l, final Random random) { for (int i = l.size(); i-- != 0;) { final int p = random.nextInt(i + 1); final float t = l.getFloat(i); l.set(i, l.getFloat(p)); l.set(p, t); } return l; } /**
@Override public Explanation explain(int doc) { int encoded = _dataCache.orderArray.get(doc); int count = 1; FloatList scoreList = new FloatArrayList(_dataCache.valArray.size()); ArrayList<Explanation> explList = new ArrayList<Explanation>(scoreList.size()); while (encoded != 0) { if ((encoded & 0x00000001) != 0x0) { int idx = count - 1; scoreList.add(_function.score(_dataCache.freqs[idx], _boostList[idx])); explList.add(_function.explain(_dataCache.freqs[idx], _boostList[idx])); } count++; encoded >>>= 1; } Explanation topLevel = _function.explain(scoreList.toFloatArray()); for (Explanation sub : explList) { topLevel.addDetail(sub); } return topLevel; }
@Override public Explanation explain(int doc) { String[] vals = _array.getTranslatedData(doc, _dataCache.valArray); FloatList scoreList = new FloatArrayList(_dataCache.valArray.size()); ArrayList<Explanation> explList = new ArrayList<Explanation>(scoreList.size()); for (String val : vals) { int idx = _dataCache.valArray.indexOf(val); if (idx >= 0) { scoreList.add(_function.score(_dataCache.freqs[idx], _boostList[idx])); explList.add(_function.explain(_dataCache.freqs[idx], _boostList[idx])); } } Explanation topLevel = _function.explain(scoreList.toFloatArray()); for (Explanation sub : explList) { topLevel.addDetail(sub); } return topLevel; }