#include <stddef.h> #include <stdio.h> #include <stdlib.h> void initMatrix(size_t m, size_t n, double *A, ptrdiff_t incRowA, ptrdiff_t incColA) { for (size_t j=0; j<n; ++j) { for (size_t i=0; i<m; ++i) { A[i*incRowA+j*incColA] = i*n + j + 1; } } } void printMatrix(size_t m, size_t n, const double *A, ptrdiff_t incRowA, ptrdiff_t incColA) { for (size_t i=0; i<m; ++i) { for (size_t j=0; j<n; ++j) { printf("%8.3lf ", A[i*incRowA+j*incColA]); } printf("\n"); } printf("\n"); } int main() { size_t m = 7; size_t n = 8; ptrdiff_t incRowA = 1; ptrdiff_t incColA = m; double *A = malloc(m*n*sizeof(double)); printf("\nA (col major)"); printf("\n=============\n"); initMatrix(m, n, A, incRowA, incColA); printf("A = \n"); printMatrix(m, n, A, incRowA, incColA); free(A); return 0; } |