Here VectorDotOperator should be CVectorDotOperator but the class_list.cpp.py script which generates class_list.cpp only supports single template argument. possible solution is to separate DotOperator for SGVector, SGSparseVector, and other GPU vectors or modify .py script to accommodate this but it cannot be generic as we don't know what the template arguments would be.