summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java b/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
index c41991eb..8b2ec127 100644
--- a/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
+++ b/src/de/lmu/ifi/dbs/elki/database/datastore/memory/ArrayDoubleStore.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.database.datastore.memory;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2013
+ Copyright (C) 2014
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -41,6 +41,11 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
* Data array
*/
private double[] data;
+
+ /**
+ * Default value.
+ */
+ private double def;
/**
* DBID to index map
@@ -67,9 +72,10 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
public ArrayDoubleStore(int size, DataStoreIDMap idmap, double def) {
super();
this.data = new double[size];
- if (def != 0) {
+ if(def != 0) {
Arrays.fill(this.data, def);
}
+ this.def = def;
this.idmap = idmap;
}
@@ -110,6 +116,16 @@ public class ArrayDoubleStore implements WritableDoubleDataStore {
}
@Override
+ public void increment(DBIDRef id, double value) {
+ data[idmap.mapDBIDToOffset(id)] += value;
+ }
+
+ @Override
+ public void clear() {
+ Arrays.fill(data, def);
+ }
+
+ @Override
public void destroy() {
data = null;
idmap = null;