#include "SparseMatrix.h" int main(int argc, char **argv) { long m, n, nz, t, sumi, sumj ; double sumre, sumim ; int P ; struct sparsematrix A ; printf("Test MMSparseMatrixAllocateMemory: "); m = 24 ; n = 17 ; nz = 10 ; P = 4 ; A.m = m ; A.n = n ; A.NrNzElts = nz ; A.NrProcs = P ; A.MMTypeCode[2] = 'C' ; /* complex matrix */ A.MMTypeCode[0] = 'D' ; /* distributed matrix, we do not test a weighted matrix */ MMSparseMatrixAllocateMemory(&A) ; if ( A.i == NULL || A.j == NULL || A.ReValue == NULL || A.ImValue == NULL || A.Pstart == NULL ){ printf("Error\n") ; exit(1); } for (t=0; t<nz; t++){ A.i[t] = t ; A.j[t] = -t ; A.ReValue[t] = t ; A.ImValue[t] = -t ; } /* Compute sum */ sumi = 0; sumj = 0; sumre = 0.0; sumim = 0.0; for (t=0; t<nz; t++){ sumi += A.i[t] ; sumj += A.j[t] ; sumre += A.ReValue[t] ; sumim += A.ImValue[t] ; } /* Check sum of array elements */ if (sumi != (nz-1)*nz/2 || sumj != -sumi || sumi != (long)(sumre+0.5) || sumi != (long)(-sumim+0.5) ){ printf("Error\n") ; exit(1); } printf("OK\n") ; exit(0); } /* end main */