package cc.mallet.fst; /** * Indicates when the value/gradient becomes stale based on updates to CRF's * parameters. * * @author Gaurav Chandalia */ public class CRFCacheStaleIndicator implements CacheStaleIndicator { protected CRF crf; protected int cachedValueChangeStamp = -1; protected int cachedGradientChangeStamp = -1; public CRFCacheStaleIndicator(CRF crf) { this.crf = crf; cachedValueChangeStamp = -1; cachedGradientChangeStamp = -1; } /** * Returns true if the value is stale, also updates the cacheValueStamp. */ public boolean isValueStale() { if (crf.weightsValueChangeStamp != cachedValueChangeStamp) { cachedValueChangeStamp = crf.weightsValueChangeStamp; return true; } return false; } /** * Returns true if the gradient is stale, also updates the cacheGradientStamp. */ public boolean isGradientStale() { if (crf.weightsValueChangeStamp != cachedGradientChangeStamp) { cachedGradientChangeStamp = crf.weightsValueChangeStamp; return true; } return false; } }