栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

cpu inverse

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cpu inverse

#include 
#include 
#include 
#include 

#define NA (5)


void do_dgemm(int M, int N, int K, const float* A, int lda, float* B, int ldb, float* C, int ldc);
void initMatrix(float* A, int dim, int seed);
void printVector(const char* log, int* Vector, int size);
int printMatrix(char* matrixName, int m, int n, float* a_matrix, int lda);
int cpublasSmatinv(int N, float *A, int lda, float *Ainv, int lda_inv, int *info);
//int cpublasSmatinvBatched(int N, const float *A[], int lda, float *Ainv[], int lda_inv, int *info, int batchSize);
int cpublasSmatinvBatched(int N, const float *A, int lda, float *Ainv, int lda_inv, int *info, int batchSize){

    float* slb_A = NULL;
    slb_A = (float*)malloc(N*N*sizeof(float));

    for(int i=0; imaxA){
                maxA = absA;
                imax = k;
            }
        }

        if (maxA == 0.0f) {
            *info = i+1;
            return i+1;//0; //failure, matrix is degenerate
        }
        1.1.2 exchange rows///
        if (imax != i) {//先交换ipiv中的行号,再交换第i行和第imax行的全部元素;
            //pivoting Pivot
            Pivot[i] = imax+1;

            //pivoting rows of A
            for(int exchIndex=0; exchIndex=0; i--){
                        float sigma = 0.0;
                        for(int k=i+1; k<=j; k++){
                                //B[i + j*ldb] += A_LU[i + k*lda] * B[k + j*ldb];    // V(i,j) = - ∑ U(i,k)*V(k,j)   / U(i,i)      , k= i+1, ... ,j
                                sigma += A[i + k*lda] * B[k + j*ldb];
                        }

                        //B[i + j*ldb] *= (-1.0 * B[i + i*ldb]);
                        B[i + j*ldb] = -sigma / A[i + i*ldb]; /
	printMatrix("U'", N, N, B, N);//help debug kernel

        
        for(int j=N-2; j>=0; j--){//B(i,j) =  U(i,j) - sigma(B(i,k)*L(k,j))   k= j+1, j+2, ... , N
                for(int i=0; i=0; j--){
                jp = Pivot[j]-1;
                if(jp != j){
                        for(int i=0; i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号