@Override public boolean input(Instance instance){
  if (getInputFormat() == null) {
    throw new IllegalStateException("No input instance format defined");
  }
  if (m_NewBatch) {
    resetQueue();
    m_NewBatch=false;
  }
  Instances outputFormat=outputFormatPeek();
  double[] vals=new double[outputFormat.numAttributes()];
  boolean inRange=false;
  double lastVal=Utils.missingValue();
  int i, j;
  for (i=0, j=0; j < outputFormat.numAttributes(); i++) {
    if (m_DeltaCols.isInRange(i) && (i != instance.classIndex())) {
      if (inRange) {
        if (Utils.isMissingValue(lastVal) || instance.isMissing(i)) {
          vals[j++]=Utils.missingValue();
        }
 else {
          vals[j++]=instance.value(i) - lastVal;
        }
      }
 else {
        inRange=true;
      }
      lastVal=instance.value(i);
    }
 else {
      vals[j++]=instance.value(i);
    }
  }
  Instance inst=null;
  if (instance instanceof SparseInstance) {
    inst=new SparseInstance(instance.weight(),vals);
  }
 else {
    inst=new DenseInstance(instance.weight(),vals);
  }
  inst.setDataset(getOutputFormat());
  copyValues(inst,false,instance.dataset(),getOutputFormat());
  inst.setDataset(getOutputFormat());
  push(inst);
  return true;
}

@ Override public boolean input ( Instance instance ) { if ( getInputFormat ( ) == null ) { throw new IllegalStateException ( "No input instance format defined" ) ; } if ( m_NewBatch ) { resetQueue ( ) ; m_NewBatch = false ; } Instances outputFormat = outputFormatPeek ( ) ; double [ ] vals = new double [ outputFormat . numAttributes ( ) ] ; boolean inRange = false ; double lastVal = Utils . missingValue ( ) ; int i , j ; for ( i = 0 , j = 0 ; j < outputFormat . numAttributes ( ) ; i ++ ) { if ( m_DeltaCols . isInRange ( i ) && ( i != instance . classIndex ( ) ) ) { if ( inRange ) { if ( Utils . isMissingValue ( lastVal ) || instance . isMissing ( i ) ) { vals [ j ++ ] = Utils . missingValue ( ) ; } else { vals [ j ++ ] = instance . value ( i ) - lastVal ; } } else { inRange = true ; } lastVal = instance . value ( i ) ; } else { vals [ j ++ ] = instance . value ( i ) ; } } Instance inst = null ; if ( instance instanceof SparseInstance ) { inst = new SparseInstance ( instance . weight ( ) , vals ) ; } else { inst = new DenseInstance ( instance . weight ( ) , vals ) ; } inst . setDataset ( getOutputFormat ( ) ) ; copyValues ( inst , false , instance . dataset ( ) , getOutputFormat ( ) ) ; inst . setDataset ( getOutputFormat ( ) ) ; push ( inst ) ; return true ; }
input an instance for filtering . ordinarily the instance is processed and made available for output immediately . some filters require all instances be read before producing output .
