Ejemplo n.º 1
0
 def query(self, x):
     n, d = x.shape
     assert d == self.rsearch.dimension
     sims = None
     if self.rsearch.var_type == rs.FLOAT32:
         sims = np.empty((n, self.rsearch.topk), dtype=np.float32)
     elif self.rsearch.var_type == rs.INT8:
         sims = np.empty((n, self.rsearch.topk), dtype=np.int32)
     uids = np.empty((n, self.rsearch.topk), dtype=np.int32)
     self.rsearch.query(rs.swig_ptr(x), n, rs.swig_ptr(sims),
                        rs.swig_ptr(uids))
     return sims, uids
Ejemplo n.º 2
0
 def query_by_uids(self, uids):
     n = uids.shape[0]
     x = rs.AreaTimeVector()
     nn = rs.int2size_t(n)
     x.resize(n)
     self.simple_index_areatime.query_by_uids(rs.swig_ptr(uids), n,
                                              x.data())
     return x
Ejemplo n.º 3
0
 def query_by_uids(self, uids):
     n, d = uids.shape
     assert d == self.rsearch.dimension
     res = None
     if self.rsearch.var_type == rs.FLOAT32:
         res = np.empty((n, d), dtype=np.float32)
     elif self.rsearch.var_type == rs.INT8:
         res = np.empty((n, d), dtype=np.int8)
     self.rsearch.query(self, rs.swig_ptr(res), n)
     return res
Ejemplo n.º 4
0
 def query_with_uids(self, x, uids):
     s = uids.shape[0]
     idx = rs.get_int_p_v()
     res = rs.get_int_v()
     self.simple_index_areatime.query_with_uids(x.data(), x.size(),
                                                rs.swig_ptr(uids), s, idx,
                                                res)
     n = rs.get_int(res)
     a = intpp2array(idx, n)
     return a
Ejemplo n.º 5
0
 def change_by_uids(self, x, uids):
     n, d = x.shape
     assert d == self.rsearch.dimension
     assert uids.shape == (n, ), 'not same nb of vectors as ids'
     return self.rsearch.add_with_uids(rs.swig_ptr(x), rs.swig_ptr(uids), n)
Ejemplo n.º 6
0
 def add(self, x):
     n, d = x.shape
     assert d == self.rsearch.dimension
     return self.rsearch.add(rs.swig_ptr(x), n)
Ejemplo n.º 7
0
def intpp2array(pp, n):
    p = rs.get_int_p(pp)
    a = np.empty(n, dtype=np.int32)
    rs.memcpy(rs.swig_ptr(a), p, a.nbytes)
    return a
Ejemplo n.º 8
0
 def remove_by_uids(self, uids):
     n = uids.shape[0]
     return self.rsearch.remove_by_uids(rs.swig_ptr(uids), n)
Ejemplo n.º 9
0
 def remove_by_uids(self, uids):
     n = uids.shape[0]
     return self.simple_index_areatime.remove_by_uids(rs.swig_ptr(uids), n)
Ejemplo n.º 10
0
 def change_by_uids(self, x, uids):
     n = uids.shape[0]
     assert x.size() == n
     return self.simple_index_areatime.change_by_uids(
         x.data(), rs.swig_ptr(uids), n)