ublas型でも受け渡しができるので便利、ただし、参照型はconstでしか受け取れない。
// コピーなし受け渡し、しかしmatへのアクセスは遅いらしい templatepyublas::numpy_matrix takeAndReturn( pyublas::numpy_matrix mat) { return mat; } // ただ返すだけ template pyublas::numpy_matrix returnNumpyMatrix(int numRow, int numCol) { pyublas::numpy_matrix mat(numRow, numCol, 0); return mat; } // ublasをnumpyに変換して返してくれる template pyublas::numpy_matrix returnUblasMatrixAsNumpyMatrix(int numRow, int numCol) { ublas::matrix mat(numRow, numCol, 0); return mat; } // ublasとして返しても変換テーブルで変換して返してくれる。C++で使っている関数がそのまま使える。 template ublas::matrix returnUblasMatrix(int numRow, int numCol) { ublas::matrix mat(numRow, numCol, 0); return mat; } // ublasにコピーして渡される template void takeUblasMatrix(ublas::matrix mat) { } // コンパイルは通るが、実行時に怒られる template void takeUblasMatrixRef(ublas::matrix &mat) { } // ublasに変換してコピーして渡される template void takeConstUblasMatrix(const ublas::matrix mat) { } // constだと参照でも渡せる。 template void takeConstUblasMatrixRef(const ublas::matrix &mat) { }
0 件のコメント:
コメントを投稿