Example usage for org.apache.mahout.cf.taste.impl.common RunningAverage changeDatum

List of usage examples for org.apache.mahout.cf.taste.impl.common RunningAverage changeDatum

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.impl.common RunningAverage changeDatum.

Prototype

void changeDatum(double delta);

Source Link

Usage

From source file:net.ufida.info.mahout.common.MemoryDiffStorage.java

License:Apache License

@Override
public void updateItemPref(long itemID, float prefDelta) {
    if (stdDevWeighted) {
        throw new UnsupportedOperationException("Can't update only when stdDevWeighted is set");
    }//from ww  w .  ja  v a  2  s.  com
    try {
        buildAverageDiffsLock.readLock().lock();
        for (Map.Entry<Long, FastByIDMap<RunningAverage>> entry : averageDiffs.entrySet()) {
            boolean matchesItemID1 = itemID == entry.getKey();
            for (Map.Entry<Long, RunningAverage> entry2 : entry.getValue().entrySet()) {
                RunningAverage average = entry2.getValue();
                if (matchesItemID1) {
                    average.changeDatum(-prefDelta);
                } else if (itemID == entry2.getKey()) {
                    average.changeDatum(prefDelta);
                }
            }
        }
        RunningAverage itemAverage = averageItemPref.get(itemID);
        if (itemAverage != null) {
            itemAverage.changeDatum(prefDelta);
        }
    } finally {
        buildAverageDiffsLock.readLock().unlock();
    }
}