Repository: opennlp
Updated Branches:
  refs/heads/master 5a0f9cafc -> 0201285c0


OPENNLP-1096: Swap for loops in ngram generation to be cache friendly


Project: http://git-wip-us.apache.org/repos/asf/opennlp/repo
Commit: http://git-wip-us.apache.org/repos/asf/opennlp/commit/0201285c
Tree: http://git-wip-us.apache.org/repos/asf/opennlp/tree/0201285c
Diff: http://git-wip-us.apache.org/repos/asf/opennlp/diff/0201285c

Branch: refs/heads/master
Commit: 0201285c0e7f3c263de80f3b992079dc57418e13
Parents: 5a0f9ca
Author: Jörn Kottmann <[email protected]>
Authored: Thu Jun 22 14:41:56 2017 +0200
Committer: Jörn Kottmann <[email protected]>
Committed: Mon Jun 26 14:22:53 2017 +0200

----------------------------------------------------------------------
 .../src/main/java/opennlp/tools/ngram/NGramModel.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/opennlp/blob/0201285c/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java 
b/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java
index a17578b..8c03024 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java
@@ -146,9 +146,9 @@ public class NGramModel implements Iterable<StringList> {
       throw new IllegalArgumentException("minLength param must not be larger 
than " +
           "maxLength param. minLength=" + minLength + ", maxLength= " + 
maxLength);
 
-    for (int lengthIndex = minLength; lengthIndex < maxLength + 1; 
lengthIndex++) {
-      for (int textIndex = 0;
-          textIndex + lengthIndex - 1 < ngram.size(); textIndex++) {
+    for (int textIndex = 0; textIndex < ngram.size(); textIndex++) {
+      for (int lengthIndex = minLength; textIndex + lengthIndex - 1 < 
ngram.size()
+          && lengthIndex < maxLength + 1; lengthIndex++) {
 
         String[] grams = new String[lengthIndex];
 
@@ -170,9 +170,9 @@ public class NGramModel implements Iterable<StringList> {
    */
   public void add(CharSequence chars, int minLength, int maxLength) {
 
-    for (int lengthIndex = minLength; lengthIndex < maxLength + 1; 
lengthIndex++) {
-      for (int textIndex = 0;
-          textIndex + lengthIndex - 1 < chars.length(); textIndex++) {
+    for (int textIndex = 0; textIndex < chars.length(); textIndex++) {
+      for (int lengthIndex = minLength; textIndex + lengthIndex - 1 < 
chars.length()
+          && lengthIndex < maxLength + 1; lengthIndex++) {
 
         String gram = StringUtil.toLowerCase(
             chars.subSequence(textIndex, textIndex + lengthIndex));

Reply via email to