将Boost UBLAS blas-1应用于矩阵
Applying Boost UBLAS blas-1 to Matrices
如何在boost::numeric::ublas矩阵上应用1级blas ?例如,我想计算最大项或者所有项的和。在矩阵上使用norm_1或norm_inf不会产生编译错误,但会返回(在我看来)任意结果。我使用boost 1.42
norm_inf
计算由底层向量空间上的无穷范数引起的矩阵范数。这恰好是矩阵的最大绝对行和。
如果你看一下hannes的例子,矩阵(i=99, j=0,…99)的最后一行包含:
9900, 9901, 9902, ... , 9999
如果你把这些元素加起来,你得到994950
,这正是norm_inf
产生的
一个简单的例子如下:
#include<iostream>
#include<boost/numeric/ublas/matrix.hpp>
using namespace boost::numeric::ublas;
int main(){
int l = 100;
matrix<double> m(l,l);
for (int i = 0; i < l; ++i) {
for (int j = 0; j < l; ++j) {
m(i,j)=i*l+j;
}
}
std::cout << norm_inf(m)<<std::endl;
return 0;
}
它应该给出99,但结果是994950。
这是一个至少解决给定任务的一行代码:
float infnorm = accumulate(m.data().begin(),m.data().end(),0,std::max<double>);
相关文章:
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 使用 std::应用于 std::bind
- 如何将Affine3d应用于Vector3d
- 运算符 += 应用于 std::valarray<int*>
- 函数可以应用于 std::optional,并返回一个可选值吗?
- 为什么带有类型参数的运算符 () 可以应用于 result_of 上下文中的类型?
- 当正斜杠运算符应用于C++中的字符串类型时,它会做什么
- 将MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE应用于IMFSinkWriter
- (C++)(Visual Studio) 将高斯模糊滤镜应用于 RGB 中的灰度图像
- 在运行时将更改的环境变量应用于 QApplication
- Strcmp 类行为应用于C++中的对象列表
- 如何将 ItemDelegate 设置为仅应用于 QTreeView 中的父列
- 什么是应用于C 和CMAKE的定义
- 将对象方法从向量应用于C 的第二个向量中的对象
- STL:将功能应用于Adchacent_difference的结果,而无需额外的容器
- WXWIDGETS应用于WXStaticBitMap时,屏幕截图将大部分图像留为空白
- 如何将垂直纹理应用于QT Surface3D
- 如何将[[nodiscard]]属性应用于lambda
- 奇怪的语法构造 - 应用于 typedef 的运算符 () 使用 VS2015 成功编译
- 将 QPropertyAnimation 应用于 QRect