/* FeatureStoreCache.java
* Created on May 31, 2005
*
* @author Sunita Sarawagi
* @version 1.3
*/
package iitb.BSegmentCRF;
import iitb.CRF.DataSequence;
import java.util.ArrayList;
/**
* @author sunita
*
*/
public class FeatureStoreCache extends FeatureStore {
boolean cache= false;
ArrayList<FeatureStore> fstores = new ArrayList<FeatureStore>();
int numIters = 0;
public FeatureStoreCache(boolean cache, boolean edgeFeatureXIndependent) {
super(edgeFeatureXIndependent);
this.cache=cache;
}
/**
* @param dataSeq
* @param bfgen
* @param lambda
* @param numY
* @param numRecord
*/
public void init(DataSequence dataSeq, BFeatureGenerator bfgen, double[] lambda, int numY, int numRecord) {
if (numRecord==0) numIters++;
if (!cache || (numRecord < 0)) {
super.init(dataSeq,bfgen,lambda,numY);
return;
}
if (numIters == 1) {
FeatureStore fstore = new FeatureStore(allFeatureCache);
fstore.init(dataSeq,bfgen,lambda,numY);
fstores.add(fstore);
}
copy((FeatureStore)fstores.get(numRecord));
if (numIters > 1) setLambda(lambda);
}
}