156 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
#include "common.h"
 | 
						|
#ifdef FUNCTION_PROFILE
 | 
						|
#include "functable.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef CBLAS
 | 
						|
 | 
						|
void NAME(blasint *N, FLOAT *dx, blasint *INCX, FLOAT *dy, blasint *INCY, FLOAT *dparam){
 | 
						|
 | 
						|
  blasint n = *N;
 | 
						|
  blasint incx = *INCX;
 | 
						|
  blasint incy = *INCY;
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
void CNAME(blasint n, FLOAT *dx, blasint incx, FLOAT *dy, blasint incy, FLOAT *dparam){
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
  blasint i__1, i__2;
 | 
						|
  
 | 
						|
  blasint i__;
 | 
						|
  FLOAT w, z__;
 | 
						|
  blasint kx, ky;
 | 
						|
  FLOAT dh11, dh12, dh22, dh21, dflag;
 | 
						|
  blasint nsteps;
 | 
						|
  
 | 
						|
#ifndef CBLAS
 | 
						|
  PRINT_DEBUG_CNAME;
 | 
						|
#else
 | 
						|
  PRINT_DEBUG_CNAME;
 | 
						|
#endif
 | 
						|
 | 
						|
  --dparam;
 | 
						|
  --dy;
 | 
						|
  --dx;
 | 
						|
  
 | 
						|
  dflag = dparam[1];
 | 
						|
    if (n <= 0 || dflag == - 2.0) goto L140;
 | 
						|
 | 
						|
    if (! (incx == incy && incx > 0)) goto L70;
 | 
						|
 | 
						|
    nsteps = n * incx;
 | 
						|
    if (dflag < 0.) {
 | 
						|
	goto L50;
 | 
						|
    } else if (dflag == 0) {
 | 
						|
	goto L10;
 | 
						|
    } else {
 | 
						|
	goto L30;
 | 
						|
    }
 | 
						|
L10:
 | 
						|
    dh12 = dparam[4];
 | 
						|
    dh21 = dparam[3];
 | 
						|
    i__1 = nsteps;
 | 
						|
    i__2 = incx;
 | 
						|
    for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) {
 | 
						|
	w = dx[i__];
 | 
						|
	z__ = dy[i__];
 | 
						|
	dx[i__] = w + z__ * dh12;
 | 
						|
	dy[i__] = w * dh21 + z__;
 | 
						|
/* L20: */
 | 
						|
    }
 | 
						|
    goto L140;
 | 
						|
L30:
 | 
						|
    dh11 = dparam[2];
 | 
						|
    dh22 = dparam[5];
 | 
						|
    i__2 = nsteps;
 | 
						|
    i__1 = incx;
 | 
						|
    for (i__ = 1; i__1 < 0 ? i__ >= i__2 : i__ <= i__2; i__ += i__1) {
 | 
						|
	w = dx[i__];
 | 
						|
	z__ = dy[i__];
 | 
						|
	dx[i__] = w * dh11 + z__;
 | 
						|
	dy[i__] = -w + dh22 * z__;
 | 
						|
/* L40: */
 | 
						|
    }
 | 
						|
    goto L140;
 | 
						|
L50:
 | 
						|
    dh11 = dparam[2];
 | 
						|
    dh12 = dparam[4];
 | 
						|
    dh21 = dparam[3];
 | 
						|
    dh22 = dparam[5];
 | 
						|
    i__1 = nsteps;
 | 
						|
    i__2 = incx;
 | 
						|
    for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) {
 | 
						|
	w = dx[i__];
 | 
						|
	z__ = dy[i__];
 | 
						|
	dx[i__] = w * dh11 + z__ * dh12;
 | 
						|
	dy[i__] = w * dh21 + z__ * dh22;
 | 
						|
/* L60: */
 | 
						|
    }
 | 
						|
    goto L140;
 | 
						|
L70:
 | 
						|
    kx = 1;
 | 
						|
    ky = 1;
 | 
						|
    if (incx < 0) {
 | 
						|
	kx = (1 - n) * incx + 1;
 | 
						|
    }
 | 
						|
    if (incy < 0) {
 | 
						|
	ky = (1 - n) * incy + 1;
 | 
						|
    }
 | 
						|
 | 
						|
    if (dflag < 0.) {
 | 
						|
	goto L120;
 | 
						|
    } else if (dflag == 0) {
 | 
						|
	goto L80;
 | 
						|
    } else {
 | 
						|
	goto L100;
 | 
						|
    }
 | 
						|
L80:
 | 
						|
    dh12 = dparam[4];
 | 
						|
    dh21 = dparam[3];
 | 
						|
    i__2 = n;
 | 
						|
    for (i__ = 1; i__ <= i__2; ++i__) {
 | 
						|
	w = dx[kx];
 | 
						|
	z__ = dy[ky];
 | 
						|
	dx[kx] = w + z__ * dh12;
 | 
						|
	dy[ky] = w * dh21 + z__;
 | 
						|
	kx += incx;
 | 
						|
	ky += incy;
 | 
						|
/* L90: */
 | 
						|
    }
 | 
						|
    goto L140;
 | 
						|
L100:
 | 
						|
    dh11 = dparam[2];
 | 
						|
    dh22 = dparam[5];
 | 
						|
    i__2 = n;
 | 
						|
    for (i__ = 1; i__ <= i__2; ++i__) {
 | 
						|
	w = dx[kx];
 | 
						|
	z__ = dy[ky];
 | 
						|
	dx[kx] = w * dh11 + z__;
 | 
						|
	dy[ky] = -w + dh22 * z__;
 | 
						|
	kx += incx;
 | 
						|
	ky += incy;
 | 
						|
/* L110: */
 | 
						|
    }
 | 
						|
    goto L140;
 | 
						|
L120:
 | 
						|
    dh11 = dparam[2];
 | 
						|
    dh12 = dparam[4];
 | 
						|
    dh21 = dparam[3];
 | 
						|
    dh22 = dparam[5];
 | 
						|
    i__2 = n;
 | 
						|
    for (i__ = 1; i__ <= i__2; ++i__) {
 | 
						|
	w = dx[kx];
 | 
						|
	z__ = dy[ky];
 | 
						|
	dx[kx] = w * dh11 + z__ * dh12;
 | 
						|
	dy[ky] = w * dh21 + z__ * dh22;
 | 
						|
	kx += incx;
 | 
						|
	ky += incy;
 | 
						|
/* L130: */
 | 
						|
    }
 | 
						|
L140:
 | 
						|
    return;
 | 
						|
}
 | 
						|
 |