コード例 #1
0
ファイル: Matrix.py プロジェクト: xichuang/HiParTI
 def multiplyVector(self, vector, type="default", testing=False):
     result = vec.ValueVector(self.address.nrows)
     size = self.address.nnz
     sp = size / self.address.ncols
     if (type == "default"):
         if (size < 6198):
             PTI.ptiSparseMatrixMulVectorCSR(result.address, self.address,
                                             vector.address)
         elif (sp < 444.3):
             PTI.ptiOmpSparseMatrixMulVectorCSR(result.address,
                                                self.address,
                                                vector.address)
         else:
             PTI.ptiOmpSparseMatrixMulVectorCSRReduce(
                 result.address, self.address, vector.address)
     elif (type == "serial"):
         PTI.ptiSparseMatrixMulVectorCSR(result.address, self.address,
                                         vector.address)
     elif (type == "CPU"):
         PTI.ptiOmpSparseMatrixMulVectorCSR(result.address, self.address,
                                            vector.address)
     elif (type == "CPU_Buff"):
         PTI.ptiOmpSparseMatrixMulVectorCSRReduce(result.address,
                                                  self.address,
                                                  vector.address)
     if not testing: return result
     else: PTI.ptiFreeValueVector(result.address)