17{
18 char UL;
19#ifdef F77_CHAR
21#else
22 #define F77_UL &UL
23#endif
24#ifdef F77_INT
26#else
27 #define F77_N N
28 #define F77_incX incx
29 #define F77_incY incY
30#endif
32 const double *xx= (double *)X, *alp= (double *)alpha, *bet = (double *)beta;
33 double ALPHA[2],BETA[2];
35 double *x=(double *)X, *y=(double *)Y, *st=0, *tx;
39
42 {
45 else
46 {
50 return;
51 }
52 #ifdef F77_CHAR
54 #endif
57 }
59 {
61 ALPHA[0]= *alp;
62 ALPHA[1]= -alp[1];
63 BETA[0]= *bet;
64 BETA[1]= -bet[1];
65
66 if (N > 0)
67 {
68 n = N << 1;
69 x = malloc(n*sizeof(double));
70
71 tx = x;
72 if( incX > 0 ) {
73 i = incX << 1;
74 tincx = 2;
75 st= x+n;
76 } else {
77 i = incX *(-2);
78 tincx = -2;
79 st = x-2;
80 x +=(n-2);
81 }
82
83 do
84 {
85 *x = *xx;
86 x[1] = -xx[1];
87 x += tincx ;
88 xx += i;
89 }
90 while (x != st);
91 x=tx;
92
93
94 #ifdef F77_INT
96 #else
97 incx = 1;
98 #endif
99
100 if(incY > 0)
101 tincY = incY;
102 else
103 tincY = -incY;
104 y++;
105
106 i = tincY << 1;
107 n = i * N ;
108 st = y + n;
109 do {
110 *y = -(*y);
111 y += i;
112 } while(y != st);
113 y -= n;
114 } else
115 x = (double *) X;
116
117
120 else
121 {
125 return;
126 }
127 #ifdef F77_CHAR
129 #endif
130
133 }
134 else
135 {
139 return;
140 }
142 {
144 if(X!=x)
145 free(x);
146 if (N > 0)
147 {
148 do
149 {
150 *y = -(*y);
151 y += i;
152 }
153 while (y != st);
154 }
155 }
156
159 return;
160}
void cblas_xerbla(CBLAS_INT p, const char *rout, const char *form,...)