/* F01CTF Example Program Text * C Version. NAG Copyright 1997, 2009. * NAG C Header File example */ #include #include "nagmk22.h" /* Simplified example program for F01CTF (Example 1 only)*/ #define NROW 4 #define NCOL 3 int main(void) { int ifail = 0, i, j, m, n, mn = NROW*NCOL, lmove = (NROW+NCOL)/2; int move[(NROW+NCOL)/2]; /* Matrix a is loaded in row major order */ double a[NROW][NCOL] = {{1.0, 2.5, 3.0}, {-2.0, 2.0, -1.5}, {3.5, 2.0, -2.5}, {1.5, -2.0, 1.0}}; /* Matrix b is loaded in row major order */ double b[NROW][NCOL] = {{2.0, -2.5, -2.0}, {1.0, 1.0, 1.0}, {-1.5, 2.5, -2.5}, {2.0, -2.0, 1.0}}; double c[NROW][NCOL]; double alpha = 1.0, beta = 1.0; puts("F01CTF Example Program Results"); m = NROW; n = NCOL; /* F01TCF is called with the transpose option specified for a and b. Each character string argument has an extra length argument at the end of the argument list. */ f01ctf_("T", "T", &m, &n, &alpha, (double *) a, &n, &beta, (double *) b, &n, (double *) c, &m, &ifail, 1, 1); /* Result matrix c is in column major order - F01CRF transposes the matrix in place */ f01crf_((double *)c, &m, &n, &mn, move, &lmove, &ifail); /* Print out array c in row major order */ for (i=0; i