当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C||C语言高分求高效的矩阵相乘程序

更新:01-02 整理:39baobao.com
字体:

[用C语言求二阶矩阵的n次方]#include<stdio.h> int main(int argc,char* argv[]){ int n; int A[4],B[4]; scanf("%d",&n); scanf("%d %d %d %d",&A[0],&A[1],&A[2],&A[3]); void MatMultiply(int &B[4],in...+阅读

不用考虑了,你的程序差太多,能达到CPU峰值的十分之一就不错了。 如果只要求高速,去找一个比较好的BLAS库调用一下就可以,比如ATLAS、GOTOBLAS、MKL、ACML、IMCL(前两个免费)。 如果坚持自己写,首先一定用C,不要用C++,然后把矩阵分块(不是让你改变存贮方式,只是改变计算次序),再手工把循环展开,把加法和乘法错开。如果你的参数选取得当,并且写得非常考究,有希望达到BLAS库的30%-40%(目前的C编译器无法把三重循环优化到最高性能)。不过根据你这段代码的质量,估计你半年之内是做不到那么好的。 再补充一句:不要相信所谓Straussen算法或其他divide and conquer型算法能更快,在现在的计算机上没希望,虽然工作量确实小了一点。

本文地址:https://www.39baobao.com/show/29_20546.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言求矩阵的逆去文库,查看完整内容> 内容来自用户:zhangbincehui #include #include void jiafa() { int m,n; float a[20][20],b[20][20],c[20][20]; int i,j; printf("请输入矩阵行数:"); scanf...

矩阵求逆c语言Gauss Jordan Elimination Algorithm (高斯消除法) int InverseMatrix_GaussianJordan(const float** &fMat, float **&invMat) { int k, l, m, n; int iTemp; float dTemp; f...

c语言求逆矩阵#include <vector>#include <iomanip>#include <cmath>#include <iostream>using namespace std;double det(int N,vector<double> A){ double D=0; vector<double> B((N-1)...

用C语言编写矩阵求逆的程序1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 int a[4][4]; for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ a[i][j] = i*4+j+1; } } fo...

矩阵的逆用C语言编程算法的大致思想是通过行列式初等变换来求。 代码如下: private double[,] ReverseMatrix( double[,] dMatrix, int Level ) { double dMatrixValue = MatrixValue( dMatrix,...

怎么用c语言求一个矩阵的的列绝对值之和的最大值和行绝对值之和#include <stdio.h> #include <math.h> #define M 3 //定义数组大小 void main() { int a[M][M]; int i,j; int max=0,temp=0; for (i=0;i<M;i++) //为数组元素赋值 { for (...

汇编语言编程:两个数相乘的实验(R2R3)(R6R7)乘以两个16位的无符号数,结果(R4R5R6R7) MOV A,R3 MOV B,R7 MUL AB XCH A ,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,一个 CLR A ADDC A,B 一个 MOV A,R6 MOV...

C语言中如何从文件读取矩阵参考如下: #include #include #include int main() { file *fp; if((fp=fopen("aa.txt","r"))==null) { printf("error in reading file !\n"); exit(1); } float f1,f2,f3; int n=...

矩阵求逆 C程序1.矩阵相乘很简单的,你自己把每一项拆开,把公式输给电脑,让它算就行了。2.自己编写的,可以计算行列式的值和逆矩阵的程序:我的程序优点是结果能以分数而不是小数显示,比一般的程序...