在C++中创建通用Numeric类的最佳方法是什么?我正在考虑一个可以包含整数,浮点数和双精度的对象.
我的第一个想法是使用将在Numeric类中使用的union,您可以在其中定义每种类型的允许操作.就像是:
union mixed_number{
int a;
float b;
double c;
};
class Number{
//define operations
...
};
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法,请告诉我.
我致力于将大型Matlab代码转换为C++和CUDA.我在转换一些稀疏矩阵运算时遇到问题,例如:
1. full_Matrix * sparse_Matrix
2. sparse_Matrix * full_Matrix
3. sparse_Matrix * sparse_Matrix (SOLVED WITH CUSP)
4. full_Matrix .* sparse_Matrix (elementwise multiplication)
5. sparse_Matrix * full_Matrix (elementwise multiplication)
6. sparse_Matrix .* sparse_Matrix (elementwise multiplication)
Run Code Online (Sandbox Code Playgroud)
我能够使用CUSPARSE解决2和使用CUSP解决3,但是我无法使用CUSP(或CUSPARSE)进行元素矩阵乘法或问题1.
如果有一个CUDA库可以实现上述所有操作(最好是开源操作),我很感兴趣.
谢谢