package is2.data; final public class F2SF extends IFV { final private float[] parameters; public float score = 0; public F2SF(float[] p) { parameters = p; } @Override final public void add(int i) { if (i > 0) { score += parameters[i]; } } final public void add(int[] i) { for (int k = 0; k < i.length; k++) { if (i[k] > 0) { score += parameters[i[k]]; } } } final public void sub(float[] px, int i, Long2IntInterface li) { if (i > 0) { score -= px[li.l2i(i)]; // score -= px[i]; //else score -=px[]; } } @Override public void clear() { score = 0; } /* * (non-Javadoc) @see is2.IFV#getScore() */ @Override public double getScore() { return score; } public float getScoreF() { return score; } /* * (non-Javadoc) @see is2.IFV#clone() */ @Override public IFV clone() { return new F2SF(this.parameters); } /** * @param l2i */ public void addRel(int i, float f) { if (i > 0) { score += parameters[i] * f; } } public int length() { return this.parameters.length; } }