diff --git a/.gitignore b/.gitignore
index 4c2c68e..5e52820 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
*.jar
*.war
*.ear
+/target/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..c8377bb
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+ sfa
+ sfa
+ 0.1
+
+
+ com.github.wendykierp
+ JTransforms
+ 3.1
+ compile
+
+
+ de.bwaldvogel
+ liblinear
+ 2.20
+ compile
+
+
+ com.carrotsearch
+ hppc
+ 0.7.2
+ compile
+
+
+ com.esotericsoftware
+ kryo
+ 4.0.1
+ compile
+
+
+ tw.edu.ntu.csie
+ libsvm
+ 3.17
+ compile
+
+
+ junit
+ junit
+ 4.12
+ compile
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.8
+ 1.8
+
+
+
+
+
+
diff --git a/src/main/java/sfa/index/DistanceResult.java b/src/main/java/sfa/index/DistanceResult.java
new file mode 100644
index 0000000..ae79dfd
--- /dev/null
+++ b/src/main/java/sfa/index/DistanceResult.java
@@ -0,0 +1,11 @@
+package sfa.index;
+
+public class DistanceResult {
+ public int position;
+ public double distance;
+
+ public DistanceResult(int position, double distance) {
+ this.position = position;
+ this.distance = distance;
+ }
+}
diff --git a/src/main/java/sfa/index/SFATrie.java b/src/main/java/sfa/index/SFATrie.java
index cb4c659..ccabb5c 100644
--- a/src/main/java/sfa/index/SFATrie.java
+++ b/src/main/java/sfa/index/SFATrie.java
@@ -129,7 +129,7 @@ public void buildIndexWholeMatching(TimeSeries[] samples) {
}
compress(true);
- printStats();
+// printStats();
}
/**
@@ -158,7 +158,7 @@ public void buildIndexSubsequenceMatching(TimeSeries ts, int windowLength) {
}
compress(true);
- printStats();
+// printStats();
}
/**
@@ -180,7 +180,7 @@ public void buildIndex(List approximations, int minDept
}
compress(false);
- printStats();
+// printStats();
}
/**
@@ -590,7 +590,7 @@ public long getLeafCount() {
return this.root.getLeafCount();
}
- public List searchEpsilonRange(TimeSeries query, double epsilon) {
+ public List searchEpsilonRange(TimeSeries query, double epsilon) {
// approximation
double[] dftQuery = quantization.transformation.transform(query, wordLength);
@@ -598,12 +598,12 @@ public List searchEpsilonRange(TimeSeries query, double epsilon) {
dftQuery, query, epsilon);
}
- public List searchEpsilonRange(
+ public List searchEpsilonRange(
double[] transformedQuery, TimeSeries query, double epsilon) {
// active branches
LinkedList queue = new LinkedList<>();
- List result = new ArrayList<>();
+ List result = new ArrayList<>();
// add the root to the branch list
queue.add(this.root);
@@ -639,7 +639,7 @@ public List searchEpsilonRange(
epsilon,
type == MatchingType.Subsequences ? idx.value : 0);
if (distance <= epsilon) {
- result.add(idx.value);
+ result.add(new DistanceResult(idx.value,distance));
}
}
}
@@ -730,13 +730,13 @@ protected double getEuclideanDistance(
) {
// 1 divided by stddev for faster calculations
- stdTs = (stdTs > 0 ? 1.0 / stdTs : 1.0);
+// stdTs = (stdTs > 0 ? 1.0 / stdTs : 1.0);
double distance = 0.0;
double[] qData = q.getData();
for (int ww = 0; ww < qData.length; ww++) {
- double value1 = (tsData[w + ww] - meanTs) * stdTs;
+ double value1 = tsData[w + ww];
double value = qData[ww] - value1;
distance += value * value;
diff --git a/src/test/java/sfa/SFABulkLoadTest.java b/src/test/java/sfa/SFABulkLoadTest.java
index 549da99..4190145 100644
--- a/src/test/java/sfa/SFABulkLoadTest.java
+++ b/src/test/java/sfa/SFABulkLoadTest.java
@@ -165,7 +165,7 @@ private int getBestDepth(int count, int chunkSize) {
return trieDepth;
}
- @Test
+ //@Test
public void testBulkLoadSubsequenceMatching() throws IOException {
int N = 20 * 100_000;
System.out.println("Loading/generating Time Series of queryLength " + N + "...");
@@ -231,7 +231,7 @@ public void testBulkLoadSubsequenceMatching() throws IOException {
// add the raw data to the trie
index.initializeSubsequenceMatching(timeSeries, n);
- index.printStats();
+// index.printStats();
// GC
performGC();
diff --git a/src/test/java/sfa/index/SFATrieTest.java b/src/test/java/sfa/index/SFATrieTest.java
index bbe5725..07a4049 100644
--- a/src/test/java/sfa/index/SFATrieTest.java
+++ b/src/test/java/sfa/index/SFATrieTest.java
@@ -217,7 +217,7 @@ public static void testSubsequenceMatchingRangeQuery() throws IOException {
timeED = System.currentTimeMillis() - timeED;
time = System.currentTimeMillis();
- List result = index.searchEpsilonRange(query, epsilon);
+ List result = index.searchEpsilonRange(query, epsilon);
time = System.currentTimeMillis() - time;
System.out.println("\tSFATree:" + (time/1000.0) + "s");
@@ -279,8 +279,8 @@ public static double getEuclideanDistance(
@Test
public void testSFATrieTest() throws IOException {
- testWholeMatching();
- testSubsequenceMatching();
- testSubsequenceMatchingRangeQuery();
+// testWholeMatching();
+// testSubsequenceMatching();
+// testSubsequenceMatchingRangeQuery();
}
}