5、高性能混合语言编程的矩阵向量积实现案例

高性能混合语言编程的矩阵向量积实现案例

1. 矩阵类接口扩展

通常,矩阵类会配备更全面的接口。例如,会提供订阅运算符,这样就可以使用 A(i,j) A[i,j] 这样的语法对稀疏矩阵进行索引。此外,更多的算术运算符和输入输出支持也是常见的扩展。

2. 面向对象实现

面向对象编程的核心思想是类按层次结构组织,应用代码可以统一处理层次结构中的所有类。
- 可以创建一个 Matrix 类,定义用于执行矩阵向量积的(虚拟)方法,但该类没有数据,不能用于存储矩阵。
- 子类实现各种矩阵格式,并利用特定格式在矩阵向量积方法中编写优化算法。例如 MatDense MatSparse MatTridiagonal 就是这样的子类。

下面是一个求解器函数的示例:

void some_solver(const Matrix& A, const Vecd& b, Vecd& x)
{
    ...
    r = A*x;
    ...
}

通过 Matrix 引用参数,可以传递 Matrix 层次结构中任何子类的实例,C++ 在运行时会跟踪实例对应的类类型。如果传递 MatSparse 实例作为参数 A ,C+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值