From b738e349be490c24d3604c224f44fc54e16d3d7b Mon Sep 17 00:00:00 2001 From: Victor Chahuneau Date: Sat, 23 Jun 2012 11:59:48 -0400 Subject: Support for sparse/dense vectors in the python extension - SparseVector, DenseVector - improved Lattice - Lattice translation - Hypergraph reweighting, pruning --- python/src/utils.pxd | 55 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 15 deletions(-) (limited to 'python/src/utils.pxd') diff --git a/python/src/utils.pxd b/python/src/utils.pxd index 786cd265..3d518524 100644 --- a/python/src/utils.pxd +++ b/python/src/utils.pxd @@ -1,5 +1,6 @@ from libcpp.string cimport string from libcpp.vector cimport vector +from libcpp.pair cimport pair cdef extern from "" namespace "std": cdef cppclass istream: @@ -8,30 +9,60 @@ cdef extern from "" namespace "std": pass cdef cppclass istringstream(istream): istringstream(char*) + ostream cout cdef extern from "utils/weights.h": ctypedef double weight_t cdef extern from "utils/logval.h": cdef cppclass LogVal[T]: - pass + double as_float() -cdef extern from "utils/prob.h": - cdef cppclass prob_t: - pass + double log(LogVal[double]&) cdef extern from "utils/wordid.h": ctypedef int WordID -cdef extern from "utils/sparse_vector.h": - cdef cppclass SparseVector[T]: +cdef extern from "utils/small_vector.h": + cdef cppclass SmallVector[T]: pass +cdef extern from "utils/sparse_vector.h": + cdef cppclass FastSparseVector[T]: + cppclass const_iterator: + const_iterator(FastSparseVector[T]&, bint is_end) + pair[unsigned, T]* ptr "operator->" () + const_iterator& operator++() + bint operator==(const_iterator&) + bint operator!=(const_iterator&) + FastSparseVector() + FastSparseVector(FastSparseVector[T]&) + const_iterator begin() + const_iterator end() + void init_vector(vector[T]* vp) + T value(unsigned k) + void set_value(unsigned k, T& v) + size_t size() + bint nonzero(unsigned k) + bint operator==(FastSparseVector[T]&) + T dot(vector[weight_t]&) # cython bug when [T] + T dot(FastSparseVector[T]&) + + FastSparseVector[weight_t] operator+(FastSparseVector[weight_t]&, FastSparseVector[weight_t]&) + FastSparseVector[weight_t] operator-(FastSparseVector[weight_t]&, FastSparseVector[weight_t]&) + ostream operator<<(ostream& out, FastSparseVector[weight_t]& v) + +cdef extern from "utils/weights.h" namespace "Weights": + void InitSparseVector(vector[weight_t]& dv, FastSparseVector[weight_t]* sv) + cdef extern from "utils/tdict.cc" namespace "TD": - cdef string GetString(vector[WordID] st) + string GetString(vector[WordID]& st) + unsigned NumWords() + WordID TDConvert "TD::Convert" (char*) + char* TDConvert "TD::Convert" (WordID) cdef extern from "utils/verbose.h": - cdef void SetSilent(bint) + void SetSilent(bint) cdef extern from "utils/fdict.h" namespace "FD": WordID FDConvert "FD::Convert" (char*) @@ -39,15 +70,9 @@ cdef extern from "utils/fdict.h" namespace "FD": cdef extern from "utils/filelib.h": cdef cppclass ReadFile: - ReadFile(string) + ReadFile(string&) istream* stream() cdef extern from "utils/sampler.h": cdef cppclass MT19937: pass - -""" -cdef extern from "" namespace "boost": - cdef cppclass shared_ptr[T]: - void reset(T*) -""" -- cgit v1.2.3