/* * FitDataIterator.java * * Created on August 16, 2002, 10:55 AM */ package hep.aida.ref.fitter.fitdata; import hep.aida.ITuple; import hep.aida.dev.IDevFitDataIterator; /** * * @author turri */ public class FitDataIterator implements IDevFitDataIterator { private ITuple tuple; private int valCol; private int errCol; private int errMinusCol; private int nVars; private double[] vars; public FitDataIterator(ITuple tuple) { this.tuple = tuple; tuple.start(); tuple.next(); valCol = tuple.findColumn("value"); errCol = tuple.findColumn("error"); errMinusCol = tuple.findColumn("minusError"); nVars = tuple.columns()-3; vars = new double[nVars]; } public int entries() { return tuple.rows(); } public boolean next() { return tuple.next(); } public void start() { tuple.start(); } public double value() { if ( valCol != -1 ) return tuple.getDouble( valCol ); return Double.NaN; } public double error() { if ( errCol != -1 ) return tuple.getDouble( errCol ); return Double.NaN; } public double minusError() { if ( errMinusCol != -1 ) return tuple.getDouble( errMinusCol ); return error(); } public double[] vars() { for ( int i = 0; i < nVars; i++ ) vars[i] = tuple.getDouble(3+i); return vars; } }