diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2012-07-25 23:40:06 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2012-07-25 23:40:06 -0400 |
commit | 717136fff09cde560d0bb0fea93a3527708d5d15 (patch) | |
tree | 53d5b4587d82dd5c10cb45a0e33aabd2cc0b166e | |
parent | eeef93717fed2901f6fcd2e3fd11118e0e309af7 (diff) |
maybe faster
-rw-r--r-- | sa-extract/Makefile | 2 | ||||
-rw-r--r-- | sa-extract/csuf.pxd | 5 | ||||
-rw-r--r-- | sa-extract/csuf.pyx | 7 |
3 files changed, 8 insertions, 6 deletions
diff --git a/sa-extract/Makefile b/sa-extract/Makefile index 3145bbfe..10d14521 100644 --- a/sa-extract/Makefile +++ b/sa-extract/Makefile @@ -1,5 +1,5 @@ %.c: %.pyx - cython $< -o $@ + cython -X cdivision=True $< -o $@ %.o: %.cc g++ -O6 -g -fPIC -c $< diff --git a/sa-extract/csuf.pxd b/sa-extract/csuf.pxd index f44167dd..972f0178 100644 --- a/sa-extract/csuf.pxd +++ b/sa-extract/csuf.pxd @@ -5,7 +5,8 @@ cdef class SuffixArray: cdef cdat.DataArray darray cdef cintlist.CIntList sa cdef cintlist.CIntList ha + # cdef lookup(self, word, int offset, int low, int high) cdef __lookup_helper(self, int word_id, int offset, int low, int high) cdef __get_range(self, int word_id, int offset, int low, int high, int midpoint) - cdef __search_low(self, int word_id, int offset, int low, int high) - cdef __search_high(self, word_id, offset, low, high) + cdef int __search_low(self, int word_id, int offset, int low, int high) + cdef int __search_high(self, int word_id, int offset, int low, int high) diff --git a/sa-extract/csuf.pyx b/sa-extract/csuf.pyx index 64c44788..2f0b1383 100644 --- a/sa-extract/csuf.pyx +++ b/sa-extract/csuf.pyx @@ -223,7 +223,7 @@ cdef class SuffixArray: f.close() - cdef __search_high(self, word_id, offset, low, high): + cdef int __search_high(self, int word_id, int offset, int low, int high): cdef int midpoint if low >= high: @@ -235,7 +235,7 @@ cdef class SuffixArray: return self.__search_high(word_id, offset, low, midpoint) - cdef __search_low(self, int word_id, int offset, int low, int high): + cdef int __search_low(self, int word_id, int offset, int low, int high): cdef int midpoint if low >= high: @@ -269,7 +269,8 @@ cdef class SuffixArray: return self.__lookup_helper(word_id, offset, midpoint+1, high) - def lookup(self, word, offset, int low, int high): + def lookup(self, word, int offset, int low, int high): + cdef int wordid if low == -1: low = 0 if high == -1: |