20 bool mnlsame(
const char*, 
const char*);
 
   21 int mnxerbla(
const char*, 
int);
 
   23 int Mndspmv(
const char* uplo, 
unsigned int n, 
double alpha,
 
   24             const double* ap, 
const double* x, 
int incx, 
double beta,
 
   25             double* y, 
int incy) {
 
   33    int kk, ix, iy, jx, jy, kx, ky;
 
  141    if (! mnlsame(uplo, 
"U") && ! mnlsame(uplo, 
"L")) {
 
  147    else if (incx == 0) {
 
  149    } 
else if (incy == 0) {
 
  153       mnxerbla(
"DSPMV ", info);
 
  159    if ( ( n == 0)  || ( alpha == 0. && beta == 1.) ) {
 
  168       kx = 1 - (n - 1) * incx;
 
  173       ky = 1 - (n - 1) * incy;
 
  185             for (i__ = 1; i__ <= i__1; ++i__) {
 
  191             for (i__ = 1; i__ <= i__1; ++i__) {
 
  192                y[i__] = beta * y[i__];
 
  200             for (i__ = 1; i__ <= i__1; ++i__) {
 
  207             for (i__ = 1; i__ <= i__1; ++i__) {
 
  208                y[iy] = beta * y[iy];
 
  219    if (mnlsame(uplo, 
"U")) {
 
  223       if (incx == 1 && incy == 1) {
 
  225          for (j = 1; j <= i__1; ++j) {
 
  226             temp1 = alpha * x[j];
 
  230             for (i__ = 1; i__ <= i__2; ++i__) {
 
  231                y[i__] += temp1 * ap[k];
 
  232                temp2 += ap[k] * x[i__];
 
  236             y[j] = y[j] + temp1 * ap[kk + j - 1] + alpha * temp2;
 
  244          for (j = 1; j <= i__1; ++j) {
 
  245             temp1 = alpha * x[jx];
 
  250             for (k = 0; k <= i__2 - kk; ++k) {
 
  251                y[iy] += temp1 * ap[k + kk];
 
  252                temp2 += ap[k + kk] * x[ix];
 
  257             y[jy] = y[jy] + temp1 * ap[kk + j - 1] + alpha * temp2;
 
  268       if (incx == 1 && incy == 1) {
 
  270          for (j = 1; j <= i__1; ++j) {
 
  271             temp1 = alpha * x[j];
 
  273             y[j] += temp1 * ap[kk];
 
  276             for (i__ = j + 1; i__ <= i__2; ++i__) {
 
  277                y[i__] += temp1 * ap[k];
 
  278                temp2 += ap[k] * x[i__];
 
  282             y[j] += alpha * temp2;
 
  290          for (j = 1; j <= i__1; ++j) {
 
  291             temp1 = alpha * x[jx];
 
  293             y[jy] += temp1 * ap[kk];
 
  297             for (k = kk + 1; k <= i__2; ++k) {
 
  300                y[iy] += temp1 * ap[k];
 
  301                temp2 += ap[k] * x[ix];
 
  304             y[jy] += alpha * temp2;