~ubuntu-branches/ubuntu/vivid/atlas/vivid

« back to all changes in this revision

Viewing changes to include/atlas_aux.h

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot, Sylvestre Ledru, Sébastien Villemot
  • Date: 2013-06-11 15:58:16 UTC
  • mfrom: (1.1.4) (25 sid)
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: package-import@ubuntu.com-20130611155816-8xeeiziu1iml040c
Tags: 3.10.1-1
[ Sylvestre Ledru ]
* New upstream release (Closes: #609287)

[ Sébastien Villemot ]
* Provide architectural defaults (i.e. precomputed timings) for all
  release archs (except armel and mips for the time being, due to slow
  porterboxes). This will make the package build much faster and should
  eliminate transient build failures due to excessive variance in the
  timings.
* Move symlinks for lib{cblas,f77blas,atlas,lapack_atlas} out of the
  libblas.so.3 alternative and make them always present, so that
  software relying on these libs do not break when another alternative
  is selected for BLAS
* ATLAS now has improved ARM support with native asm constructs. This required
  the following tunes:
  + armel-is-v4t.diff: new patch, prevents FTBFS on armel; otherwise,
    ATLAS uses asm constructs too recent for the platform (armel is only v4t)
  + debian/rules: on armhf, define the ATL_ARM_HARDFP flag; otherwise the asm
    constructs use the soft-float ABI for passing floating points
  + on armhf, ensure that -mfloat-abi=softfp and -mcpu=vfpv3 flags are never
    used; this is implemented via a patch (armhf.diff) and by the use of fixed
    archdefs
* The generic package is now built without multi-threading, because otherwise
  the package fails to build on some single-processor machines (this required
  the introduction of a patch: fix-non-threaded-build.diff). As a side effect,
  the build of the custom package gracefully handles non-threaded
  builds. (Closes: #602524)
* Add libblas.a as slave in the libblas.so alternative (Closes: #701921)
* Add symlinks for lib{f77blas,atlas}.a in /usr/lib (Closes: #666203)
* Modify shlibs file of libatlas3-base, such that packages using
  libblas/liblapack depend on any BLAS/LAPACK alternative, while packages
  depending on ATLAS-specific libraries (e.g. libatlas.so) depend specifically
  on libatlas3-base.
* corei1.diff: remove patch, applied upstream
* Use my @debian.org email address
* Remove obsolete DM-Upload-Allowed flag
* Switch VCS to git
* Remove Conflicts/Replaces against pre-squeeze packages
* libatlas-base-dev now provides libblas.so, as libblas-dev
* No longer use -Wa,--noexecstack in CFLAGS, it makes the package FTBFS
* Do not use POWER3 arch for powerpcspe port (Closes: #701068)
* Bump to debhelper compat level 9
* README.Debian: mention that devscripts is needed to compile the custom
  package (Closes: #697431)
* Bump Standards-Version to 3.9.4. As a consequence, add Built-Using
  fields because the package embeds stuff from liblapack-pic

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 *             Automatically Tuned Linear Algebra Software v3.8.4
 
2
 *             Automatically Tuned Linear Algebra Software v3.10.1
3
3
 *                    (C) Copyright 1999 R. Clint Whaley
4
4
 *
5
5
 * Redistribution and use in source and binary forms, with or without
36
36
 
37
37
void ATL_xerbla(int p, char *rout, char *form, ...);
38
38
int ATL_lcm(const int M, const int N);
 
39
double ATL_flushcache(long long size);
39
40
double ATL_walltime();
40
41
double ATL_cputime();
41
42
 
42
43
/*
43
44
 * Auxiliary routines that come in all four types
44
45
 */
 
46
void ATL_sgeset(ATL_CINT M, ATL_CINT N, const float alpha,
 
47
                const float beta, float *A, ATL_CINT lda);
 
48
void ATL_strsetL(ATL_CINT M, ATL_CINT N, const float alpha,
 
49
                 const float beta, float *A, ATL_CINT lda);
 
50
void ATL_strsetU(ATL_CINT M, ATL_CINT N, const float alpha,
 
51
                 const float beta, float *A, ATL_CINT lda);
 
52
float ATL_sgemaxnrm(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda);
45
53
void ATL_sgeadd(const int M, const int N, const float alpha,
46
54
                const float *A, const int lda, const float beta,
47
55
                float *C, const int ldc);
56
64
 
57
65
void ATL_sgescal(const int M, const int N, const float beta,
58
66
                 float *C, const int ldc);
 
67
void ATL_stradd
 
68
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
69
    const float beta, float *C, ATL_CINT ldc);
59
70
void ATL_strscal
60
71
   (const enum ATLAS_UPLO Uplo, const int M, const int N, const float alpha,
61
72
    float *A, const int lda);
64
75
    float *A, const int lda);
65
76
 
66
77
void ATL_sgezero(const int M, const int N, float *C, const int ldc);
 
78
void ATL_ssyApAt_NB
 
79
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
80
    const float beta, float *C, ATL_CINT ldc);
 
81
void ATL_ssyApAt
 
82
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
83
    const float beta, float *C, ATL_CINT ldc);
 
84
void ATL_sgeApBt_NB
 
85
   (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda,
 
86
    const float *B, ATL_CINT ldb, const float beta, float *C, ATL_CINT ldc);
 
87
void ATL_sgeswapT(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda,
 
88
                  float *B, ATL_CINT ldb);
 
89
void ATL_ssqtrans(ATL_CINT N, float *C, ATL_CINT ldc);
67
90
 
68
91
void ATL_szero(const int N, float *X, const int incX);
69
92
void ATL_sset(const int N, const float alpha, float *X, const int incX);
80
103
                const int incX, const float beta, float *Y, const int incY);
81
104
 
82
105
void ATL_sgeadd_a1_b1
83
 
   (const int M, const int N, const float alpha, const float *A,
84
 
    const int lda, const float beta, float *C, const int ldc);
 
106
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
107
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
85
108
void ATL_saxpby_a1_b1
86
 
   (const int N, const float alpha, const float *X, const int incX,
87
 
    const float beta, float *Y, const int incY);
 
109
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
110
    const float beta, float *Y, ATL_CINT  incY);
88
111
void ATL_sgeadd_a0_b1
89
 
   (const int M, const int N, const float alpha, const float *A,
90
 
    const int lda, const float beta, float *C, const int ldc);
 
112
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
113
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
91
114
void ATL_saxpby_a0_b1
92
 
   (const int N, const float alpha, const float *X, const int incX,
93
 
    const float beta, float *Y, const int incY);
 
115
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
116
    const float beta, float *Y, ATL_CINT  incY);
94
117
void ATL_sgeadd_aX_b1
95
 
   (const int M, const int N, const float alpha, const float *A,
96
 
    const int lda, const float beta, float *C, const int ldc);
 
118
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
119
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
97
120
void ATL_saxpby_aX_b1
98
 
   (const int N, const float alpha, const float *X, const int incX,
99
 
    const float beta, float *Y, const int incY);
 
121
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
122
    const float beta, float *Y, ATL_CINT  incY);
100
123
void ATL_sgeadd_a1_b0
101
 
   (const int M, const int N, const float alpha, const float *A,
102
 
    const int lda, const float beta, float *C, const int ldc);
 
124
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
125
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
103
126
void ATL_saxpby_a1_b0
104
 
   (const int N, const float alpha, const float *X, const int incX,
105
 
    const float beta, float *Y, const int incY);
 
127
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
128
    const float beta, float *Y, ATL_CINT  incY);
106
129
void ATL_sgeadd_a0_b0
107
 
   (const int M, const int N, const float alpha, const float *A,
108
 
    const int lda, const float beta, float *C, const int ldc);
 
130
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
131
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
109
132
void ATL_saxpby_a0_b0
110
 
   (const int N, const float alpha, const float *X, const int incX,
111
 
    const float beta, float *Y, const int incY);
 
133
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
134
    const float beta, float *Y, ATL_CINT  incY);
112
135
void ATL_sgeadd_aX_b0
113
 
   (const int M, const int N, const float alpha, const float *A,
114
 
    const int lda, const float beta, float *C, const int ldc);
 
136
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
137
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
115
138
void ATL_saxpby_aX_b0
116
 
   (const int N, const float alpha, const float *X, const int incX,
117
 
    const float beta, float *Y, const int incY);
 
139
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
140
    const float beta, float *Y, ATL_CINT  incY);
118
141
void ATL_sgeadd_a1_bX
119
 
   (const int M, const int N, const float alpha, const float *A,
120
 
    const int lda, const float beta, float *C, const int ldc);
 
142
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
143
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
121
144
void ATL_saxpby_a1_bX
122
 
   (const int N, const float alpha, const float *X, const int incX,
123
 
    const float beta, float *Y, const int incY);
 
145
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
146
    const float beta, float *Y, ATL_CINT  incY);
124
147
void ATL_sgeadd_a0_bX
125
 
   (const int M, const int N, const float alpha, const float *A,
126
 
    const int lda, const float beta, float *C, const int ldc);
 
148
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
149
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
127
150
void ATL_saxpby_a0_bX
128
 
   (const int N, const float alpha, const float *X, const int incX,
129
 
    const float beta, float *Y, const int incY);
 
151
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
152
    const float beta, float *Y, ATL_CINT  incY);
130
153
void ATL_sgeadd_aX_bX
131
 
   (const int M, const int N, const float alpha, const float *A,
132
 
    const int lda, const float beta, float *C, const int ldc);
 
154
   (ATL_CINT  M, ATL_CINT  N, const float alpha, const float *A,
 
155
    ATL_CINT  lda, const float beta, float *C, ATL_CINT  ldc);
133
156
void ATL_saxpby_aX_bX
134
 
   (const int N, const float alpha, const float *X, const int incX,
135
 
    const float beta, float *Y, const int incY);
 
157
   (ATL_CINT  N, const float alpha, const float *X, ATL_CINT  incX,
 
158
    const float beta, float *Y, ATL_CINT  incY);
136
159
 
137
160
void ATL_sgemove_a1
138
 
   (const int M, const int N, const float alpha, const float *A,
139
 
    const int lda, float *C, const int ldc);
 
161
   (ATL_CINT M, ATL_CINT N, const float alpha, const float *A,
 
162
    const int lda, float *C, ATL_CINT ldc);
140
163
void ATL_sgemove_a0
141
 
   (const int M, const int N, const float alpha, const float *A,
142
 
    const int lda, float *C, const int ldc);
 
164
   (ATL_CINT M, ATL_CINT N, const float alpha, const float *A,
 
165
    const int lda, float *C, ATL_CINT ldc);
143
166
void ATL_sgemove_aX
144
 
   (const int M, const int N, const float alpha, const float *A,
145
 
    const int lda, float *C, const int ldc);
 
167
   (ATL_CINT M, ATL_CINT N, const float alpha, const float *A,
 
168
    const int lda, float *C, ATL_CINT ldc);
146
169
 
147
170
void ATL_sgescal_b1
148
 
   (const int M, const int N, const float beta, float *C, const int ldc);
 
171
   (ATL_CINT  M, ATL_CINT  N, const float beta, float *C, ATL_CINT  ldc);
149
172
void ATL_sgescal_b0
150
 
   (const int M, const int N, const float beta, float *C, const int ldc);
 
173
   (ATL_CINT  M, ATL_CINT  N, const float beta, float *C, ATL_CINT  ldc);
151
174
void ATL_sgescal_bX
152
 
   (const int M, const int N, const float beta, float *C, const int ldc);
 
175
   (ATL_CINT  M, ATL_CINT  N, const float beta, float *C, ATL_CINT  ldc);
153
176
 
 
177
void ATL_dgeset(ATL_CINT M, ATL_CINT N, const double alpha,
 
178
                const double beta, double *A, ATL_CINT lda);
 
179
void ATL_dtrsetL(ATL_CINT M, ATL_CINT N, const double alpha,
 
180
                 const double beta, double *A, ATL_CINT lda);
 
181
void ATL_dtrsetU(ATL_CINT M, ATL_CINT N, const double alpha,
 
182
                 const double beta, double *A, ATL_CINT lda);
 
183
double ATL_dgemaxnrm(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda);
154
184
void ATL_dgeadd(const int M, const int N, const double alpha,
155
185
                const double *A, const int lda, const double beta,
156
186
                double *C, const int ldc);
165
195
 
166
196
void ATL_dgescal(const int M, const int N, const double beta,
167
197
                 double *C, const int ldc);
 
198
void ATL_dtradd
 
199
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
200
    const double beta, double *C, ATL_CINT ldc);
168
201
void ATL_dtrscal
169
202
   (const enum ATLAS_UPLO Uplo, const int M, const int N, const double alpha,
170
203
    double *A, const int lda);
173
206
    double *A, const int lda);
174
207
 
175
208
void ATL_dgezero(const int M, const int N, double *C, const int ldc);
 
209
void ATL_dsyApAt_NB
 
210
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
211
    const double beta, double *C, ATL_CINT ldc);
 
212
void ATL_dsyApAt
 
213
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
214
    const double beta, double *C, ATL_CINT ldc);
 
215
void ATL_dgeApBt_NB
 
216
   (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda,
 
217
    const double *B, ATL_CINT ldb, const double beta, double *C, ATL_CINT ldc);
 
218
void ATL_dgeswapT(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda,
 
219
                  double *B, ATL_CINT ldb);
 
220
void ATL_dsqtrans(ATL_CINT N, double *C, ATL_CINT ldc);
176
221
 
177
222
void ATL_dzero(const int N, double *X, const int incX);
178
223
void ATL_dset(const int N, const double alpha, double *X, const int incX);
189
234
                const int incX, const double beta, double *Y, const int incY);
190
235
 
191
236
void ATL_dgeadd_a1_b1
192
 
   (const int M, const int N, const double alpha, const double *A,
193
 
    const int lda, const double beta, double *C, const int ldc);
 
237
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
238
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
194
239
void ATL_daxpby_a1_b1
195
 
   (const int N, const double alpha, const double *X, const int incX,
196
 
    const double beta, double *Y, const int incY);
 
240
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
241
    const double beta, double *Y, ATL_CINT  incY);
197
242
void ATL_dgeadd_a0_b1
198
 
   (const int M, const int N, const double alpha, const double *A,
199
 
    const int lda, const double beta, double *C, const int ldc);
 
243
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
244
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
200
245
void ATL_daxpby_a0_b1
201
 
   (const int N, const double alpha, const double *X, const int incX,
202
 
    const double beta, double *Y, const int incY);
 
246
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
247
    const double beta, double *Y, ATL_CINT  incY);
203
248
void ATL_dgeadd_aX_b1
204
 
   (const int M, const int N, const double alpha, const double *A,
205
 
    const int lda, const double beta, double *C, const int ldc);
 
249
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
250
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
206
251
void ATL_daxpby_aX_b1
207
 
   (const int N, const double alpha, const double *X, const int incX,
208
 
    const double beta, double *Y, const int incY);
 
252
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
253
    const double beta, double *Y, ATL_CINT  incY);
209
254
void ATL_dgeadd_a1_b0
210
 
   (const int M, const int N, const double alpha, const double *A,
211
 
    const int lda, const double beta, double *C, const int ldc);
 
255
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
256
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
212
257
void ATL_daxpby_a1_b0
213
 
   (const int N, const double alpha, const double *X, const int incX,
214
 
    const double beta, double *Y, const int incY);
 
258
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
259
    const double beta, double *Y, ATL_CINT  incY);
215
260
void ATL_dgeadd_a0_b0
216
 
   (const int M, const int N, const double alpha, const double *A,
217
 
    const int lda, const double beta, double *C, const int ldc);
 
261
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
262
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
218
263
void ATL_daxpby_a0_b0
219
 
   (const int N, const double alpha, const double *X, const int incX,
220
 
    const double beta, double *Y, const int incY);
 
264
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
265
    const double beta, double *Y, ATL_CINT  incY);
221
266
void ATL_dgeadd_aX_b0
222
 
   (const int M, const int N, const double alpha, const double *A,
223
 
    const int lda, const double beta, double *C, const int ldc);
 
267
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
268
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
224
269
void ATL_daxpby_aX_b0
225
 
   (const int N, const double alpha, const double *X, const int incX,
226
 
    const double beta, double *Y, const int incY);
 
270
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
271
    const double beta, double *Y, ATL_CINT  incY);
227
272
void ATL_dgeadd_a1_bX
228
 
   (const int M, const int N, const double alpha, const double *A,
229
 
    const int lda, const double beta, double *C, const int ldc);
 
273
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
274
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
230
275
void ATL_daxpby_a1_bX
231
 
   (const int N, const double alpha, const double *X, const int incX,
232
 
    const double beta, double *Y, const int incY);
 
276
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
277
    const double beta, double *Y, ATL_CINT  incY);
233
278
void ATL_dgeadd_a0_bX
234
 
   (const int M, const int N, const double alpha, const double *A,
235
 
    const int lda, const double beta, double *C, const int ldc);
 
279
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
280
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
236
281
void ATL_daxpby_a0_bX
237
 
   (const int N, const double alpha, const double *X, const int incX,
238
 
    const double beta, double *Y, const int incY);
 
282
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
283
    const double beta, double *Y, ATL_CINT  incY);
239
284
void ATL_dgeadd_aX_bX
240
 
   (const int M, const int N, const double alpha, const double *A,
241
 
    const int lda, const double beta, double *C, const int ldc);
 
285
   (ATL_CINT  M, ATL_CINT  N, const double alpha, const double *A,
 
286
    ATL_CINT  lda, const double beta, double *C, ATL_CINT  ldc);
242
287
void ATL_daxpby_aX_bX
243
 
   (const int N, const double alpha, const double *X, const int incX,
244
 
    const double beta, double *Y, const int incY);
 
288
   (ATL_CINT  N, const double alpha, const double *X, ATL_CINT  incX,
 
289
    const double beta, double *Y, ATL_CINT  incY);
245
290
 
246
291
void ATL_dgemove_a1
247
 
   (const int M, const int N, const double alpha, const double *A,
248
 
    const int lda, double *C, const int ldc);
 
292
   (ATL_CINT M, ATL_CINT N, const double alpha, const double *A,
 
293
    const int lda, double *C, ATL_CINT ldc);
249
294
void ATL_dgemove_a0
250
 
   (const int M, const int N, const double alpha, const double *A,
251
 
    const int lda, double *C, const int ldc);
 
295
   (ATL_CINT M, ATL_CINT N, const double alpha, const double *A,
 
296
    const int lda, double *C, ATL_CINT ldc);
252
297
void ATL_dgemove_aX
253
 
   (const int M, const int N, const double alpha, const double *A,
254
 
    const int lda, double *C, const int ldc);
 
298
   (ATL_CINT M, ATL_CINT N, const double alpha, const double *A,
 
299
    const int lda, double *C, ATL_CINT ldc);
255
300
 
256
301
void ATL_dgescal_b1
257
 
   (const int M, const int N, const double beta, double *C, const int ldc);
 
302
   (ATL_CINT  M, ATL_CINT  N, const double beta, double *C, ATL_CINT  ldc);
258
303
void ATL_dgescal_b0
259
 
   (const int M, const int N, const double beta, double *C, const int ldc);
 
304
   (ATL_CINT  M, ATL_CINT  N, const double beta, double *C, ATL_CINT  ldc);
260
305
void ATL_dgescal_bX
261
 
   (const int M, const int N, const double beta, double *C, const int ldc);
 
306
   (ATL_CINT  M, ATL_CINT  N, const double beta, double *C, ATL_CINT  ldc);
262
307
 
 
308
void ATL_cgeset(ATL_CINT M, ATL_CINT N, const float *alpha,
 
309
                const float *beta, float *A, ATL_CINT lda);
 
310
void ATL_ctrsetL(ATL_CINT M, ATL_CINT N, const float *alpha,
 
311
                 const float *beta, float *A, ATL_CINT lda);
 
312
void ATL_ctrsetU(ATL_CINT M, ATL_CINT N, const float *alpha,
 
313
                 const float *beta, float *A, ATL_CINT lda);
 
314
float ATL_cgemaxnrm(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda);
263
315
void ATL_cgeadd(const int M, const int N, const float *alpha,
264
316
                const float *A, const int lda, const float *beta,
265
317
                float *C, const int ldc);
274
326
 
275
327
void ATL_cgescal(const int M, const int N, const float *beta,
276
328
                 float *C, const int ldc);
 
329
void ATL_ctradd
 
330
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
331
    const float *beta, float *C, ATL_CINT ldc);
277
332
void ATL_ctrscal
278
333
   (const enum ATLAS_UPLO Uplo, const int M, const int N, const float *alpha,
279
334
    float *A, const int lda);
282
337
    float *A, const int lda);
283
338
 
284
339
void ATL_cgezero(const int M, const int N, float *C, const int ldc);
 
340
void ATL_csyApAt_NB
 
341
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
342
    const float *beta, float *C, ATL_CINT ldc);
 
343
void ATL_csyApAt
 
344
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
345
    const float *beta, float *C, ATL_CINT ldc);
 
346
void ATL_cgeApBt_NB
 
347
   (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda,
 
348
    const float *B, ATL_CINT ldb, const float *beta, float *C, ATL_CINT ldc);
 
349
void ATL_cgeswapT(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda,
 
350
                  float *B, ATL_CINT ldb);
 
351
void ATL_csqtrans(ATL_CINT N, float *C, ATL_CINT ldc);
285
352
 
286
353
void ATL_czero(const int N, float *X, const int incX);
287
354
void ATL_cset(const int N, const float *alpha, float *X, const int incX);
298
365
                const int incX, const float *beta, float *Y, const int incY);
299
366
 
300
367
void ATL_cgeadd_a1_b1
301
 
   (const int M, const int N, const float *alpha, const float *A,
302
 
    const int lda, const float *beta, float *C, const int ldc);
 
368
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
369
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
303
370
void ATL_caxpby_a1_b1
304
 
   (const int N, const float *alpha, const float *X, const int incX,
305
 
    const float *beta, float *Y, const int incY);
 
371
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
372
    const float *beta, float *Y, ATL_CINT  incY);
306
373
void ATL_cgeadd_a0_b1
307
 
   (const int M, const int N, const float *alpha, const float *A,
308
 
    const int lda, const float *beta, float *C, const int ldc);
 
374
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
375
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
309
376
void ATL_caxpby_a0_b1
310
 
   (const int N, const float *alpha, const float *X, const int incX,
311
 
    const float *beta, float *Y, const int incY);
 
377
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
378
    const float *beta, float *Y, ATL_CINT  incY);
312
379
void ATL_cgeadd_aX_b1
313
 
   (const int M, const int N, const float *alpha, const float *A,
314
 
    const int lda, const float *beta, float *C, const int ldc);
 
380
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
381
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
315
382
void ATL_caxpby_aX_b1
316
 
   (const int N, const float *alpha, const float *X, const int incX,
317
 
    const float *beta, float *Y, const int incY);
 
383
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
384
    const float *beta, float *Y, ATL_CINT  incY);
318
385
void ATL_cgeadd_a1_b0
319
 
   (const int M, const int N, const float *alpha, const float *A,
320
 
    const int lda, const float *beta, float *C, const int ldc);
 
386
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
387
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
321
388
void ATL_caxpby_a1_b0
322
 
   (const int N, const float *alpha, const float *X, const int incX,
323
 
    const float *beta, float *Y, const int incY);
 
389
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
390
    const float *beta, float *Y, ATL_CINT  incY);
324
391
void ATL_cgeadd_a0_b0
325
 
   (const int M, const int N, const float *alpha, const float *A,
326
 
    const int lda, const float *beta, float *C, const int ldc);
 
392
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
393
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
327
394
void ATL_caxpby_a0_b0
328
 
   (const int N, const float *alpha, const float *X, const int incX,
329
 
    const float *beta, float *Y, const int incY);
 
395
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
396
    const float *beta, float *Y, ATL_CINT  incY);
330
397
void ATL_cgeadd_aX_b0
331
 
   (const int M, const int N, const float *alpha, const float *A,
332
 
    const int lda, const float *beta, float *C, const int ldc);
 
398
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
399
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
333
400
void ATL_caxpby_aX_b0
334
 
   (const int N, const float *alpha, const float *X, const int incX,
335
 
    const float *beta, float *Y, const int incY);
 
401
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
402
    const float *beta, float *Y, ATL_CINT  incY);
336
403
void ATL_cgeadd_a1_bX
337
 
   (const int M, const int N, const float *alpha, const float *A,
338
 
    const int lda, const float *beta, float *C, const int ldc);
 
404
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
405
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
339
406
void ATL_caxpby_a1_bX
340
 
   (const int N, const float *alpha, const float *X, const int incX,
341
 
    const float *beta, float *Y, const int incY);
 
407
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
408
    const float *beta, float *Y, ATL_CINT  incY);
342
409
void ATL_cgeadd_a0_bX
343
 
   (const int M, const int N, const float *alpha, const float *A,
344
 
    const int lda, const float *beta, float *C, const int ldc);
 
410
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
411
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
345
412
void ATL_caxpby_a0_bX
346
 
   (const int N, const float *alpha, const float *X, const int incX,
347
 
    const float *beta, float *Y, const int incY);
 
413
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
414
    const float *beta, float *Y, ATL_CINT  incY);
348
415
void ATL_cgeadd_aX_bX
349
 
   (const int M, const int N, const float *alpha, const float *A,
350
 
    const int lda, const float *beta, float *C, const int ldc);
 
416
   (ATL_CINT  M, ATL_CINT  N, const float *alpha, const float *A,
 
417
    ATL_CINT  lda, const float *beta, float *C, ATL_CINT  ldc);
351
418
void ATL_caxpby_aX_bX
352
 
   (const int N, const float *alpha, const float *X, const int incX,
353
 
    const float *beta, float *Y, const int incY);
 
419
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
420
    const float *beta, float *Y, ATL_CINT  incY);
354
421
 
355
422
void ATL_cgemove_a1
356
 
   (const int M, const int N, const float *alpha, const float *A,
357
 
    const int lda, float *C, const int ldc);
 
423
   (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A,
 
424
    const int lda, float *C, ATL_CINT ldc);
358
425
void ATL_cgemove_a0
359
 
   (const int M, const int N, const float *alpha, const float *A,
360
 
    const int lda, float *C, const int ldc);
 
426
   (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A,
 
427
    const int lda, float *C, ATL_CINT ldc);
361
428
void ATL_cgemove_aX
362
 
   (const int M, const int N, const float *alpha, const float *A,
363
 
    const int lda, float *C, const int ldc);
 
429
   (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A,
 
430
    const int lda, float *C, ATL_CINT ldc);
364
431
 
365
432
void ATL_cgescal_b1
366
 
   (const int M, const int N, const float *beta, float *C, const int ldc);
 
433
   (ATL_CINT  M, ATL_CINT  N, const float *beta, float *C, ATL_CINT  ldc);
367
434
void ATL_cgescal_b0
368
 
   (const int M, const int N, const float *beta, float *C, const int ldc);
 
435
   (ATL_CINT  M, ATL_CINT  N, const float *beta, float *C, ATL_CINT  ldc);
369
436
void ATL_cgescal_bX
370
 
   (const int M, const int N, const float *beta, float *C, const int ldc);
 
437
   (ATL_CINT  M, ATL_CINT  N, const float *beta, float *C, ATL_CINT  ldc);
371
438
 
 
439
void ATL_zgeset(ATL_CINT M, ATL_CINT N, const double *alpha,
 
440
                const double *beta, double *A, ATL_CINT lda);
 
441
void ATL_ztrsetL(ATL_CINT M, ATL_CINT N, const double *alpha,
 
442
                 const double *beta, double *A, ATL_CINT lda);
 
443
void ATL_ztrsetU(ATL_CINT M, ATL_CINT N, const double *alpha,
 
444
                 const double *beta, double *A, ATL_CINT lda);
 
445
double ATL_zgemaxnrm(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda);
372
446
void ATL_zgeadd(const int M, const int N, const double *alpha,
373
447
                const double *A, const int lda, const double *beta,
374
448
                double *C, const int ldc);
383
457
 
384
458
void ATL_zgescal(const int M, const int N, const double *beta,
385
459
                 double *C, const int ldc);
 
460
void ATL_ztradd
 
461
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
462
    const double *beta, double *C, ATL_CINT ldc);
386
463
void ATL_ztrscal
387
464
   (const enum ATLAS_UPLO Uplo, const int M, const int N, const double *alpha,
388
465
    double *A, const int lda);
391
468
    double *A, const int lda);
392
469
 
393
470
void ATL_zgezero(const int M, const int N, double *C, const int ldc);
 
471
void ATL_zsyApAt_NB
 
472
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
473
    const double *beta, double *C, ATL_CINT ldc);
 
474
void ATL_zsyApAt
 
475
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
476
    const double *beta, double *C, ATL_CINT ldc);
 
477
void ATL_zgeApBt_NB
 
478
   (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda,
 
479
    const double *B, ATL_CINT ldb, const double *beta, double *C, ATL_CINT ldc);
 
480
void ATL_zgeswapT(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda,
 
481
                  double *B, ATL_CINT ldb);
 
482
void ATL_zsqtrans(ATL_CINT N, double *C, ATL_CINT ldc);
394
483
 
395
484
void ATL_zzero(const int N, double *X, const int incX);
396
485
void ATL_zset(const int N, const double *alpha, double *X, const int incX);
407
496
                const int incX, const double *beta, double *Y, const int incY);
408
497
 
409
498
void ATL_zgeadd_a1_b1
410
 
   (const int M, const int N, const double *alpha, const double *A,
411
 
    const int lda, const double *beta, double *C, const int ldc);
 
499
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
500
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
412
501
void ATL_zaxpby_a1_b1
413
 
   (const int N, const double *alpha, const double *X, const int incX,
414
 
    const double *beta, double *Y, const int incY);
 
502
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
503
    const double *beta, double *Y, ATL_CINT  incY);
415
504
void ATL_zgeadd_a0_b1
416
 
   (const int M, const int N, const double *alpha, const double *A,
417
 
    const int lda, const double *beta, double *C, const int ldc);
 
505
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
506
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
418
507
void ATL_zaxpby_a0_b1
419
 
   (const int N, const double *alpha, const double *X, const int incX,
420
 
    const double *beta, double *Y, const int incY);
 
508
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
509
    const double *beta, double *Y, ATL_CINT  incY);
421
510
void ATL_zgeadd_aX_b1
422
 
   (const int M, const int N, const double *alpha, const double *A,
423
 
    const int lda, const double *beta, double *C, const int ldc);
 
511
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
512
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
424
513
void ATL_zaxpby_aX_b1
425
 
   (const int N, const double *alpha, const double *X, const int incX,
426
 
    const double *beta, double *Y, const int incY);
 
514
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
515
    const double *beta, double *Y, ATL_CINT  incY);
427
516
void ATL_zgeadd_a1_b0
428
 
   (const int M, const int N, const double *alpha, const double *A,
429
 
    const int lda, const double *beta, double *C, const int ldc);
 
517
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
518
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
430
519
void ATL_zaxpby_a1_b0
431
 
   (const int N, const double *alpha, const double *X, const int incX,
432
 
    const double *beta, double *Y, const int incY);
 
520
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
521
    const double *beta, double *Y, ATL_CINT  incY);
433
522
void ATL_zgeadd_a0_b0
434
 
   (const int M, const int N, const double *alpha, const double *A,
435
 
    const int lda, const double *beta, double *C, const int ldc);
 
523
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
524
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
436
525
void ATL_zaxpby_a0_b0
437
 
   (const int N, const double *alpha, const double *X, const int incX,
438
 
    const double *beta, double *Y, const int incY);
 
526
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
527
    const double *beta, double *Y, ATL_CINT  incY);
439
528
void ATL_zgeadd_aX_b0
440
 
   (const int M, const int N, const double *alpha, const double *A,
441
 
    const int lda, const double *beta, double *C, const int ldc);
 
529
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
530
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
442
531
void ATL_zaxpby_aX_b0
443
 
   (const int N, const double *alpha, const double *X, const int incX,
444
 
    const double *beta, double *Y, const int incY);
 
532
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
533
    const double *beta, double *Y, ATL_CINT  incY);
445
534
void ATL_zgeadd_a1_bX
446
 
   (const int M, const int N, const double *alpha, const double *A,
447
 
    const int lda, const double *beta, double *C, const int ldc);
 
535
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
536
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
448
537
void ATL_zaxpby_a1_bX
449
 
   (const int N, const double *alpha, const double *X, const int incX,
450
 
    const double *beta, double *Y, const int incY);
 
538
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
539
    const double *beta, double *Y, ATL_CINT  incY);
451
540
void ATL_zgeadd_a0_bX
452
 
   (const int M, const int N, const double *alpha, const double *A,
453
 
    const int lda, const double *beta, double *C, const int ldc);
 
541
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
542
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
454
543
void ATL_zaxpby_a0_bX
455
 
   (const int N, const double *alpha, const double *X, const int incX,
456
 
    const double *beta, double *Y, const int incY);
 
544
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
545
    const double *beta, double *Y, ATL_CINT  incY);
457
546
void ATL_zgeadd_aX_bX
458
 
   (const int M, const int N, const double *alpha, const double *A,
459
 
    const int lda, const double *beta, double *C, const int ldc);
 
547
   (ATL_CINT  M, ATL_CINT  N, const double *alpha, const double *A,
 
548
    ATL_CINT  lda, const double *beta, double *C, ATL_CINT  ldc);
460
549
void ATL_zaxpby_aX_bX
461
 
   (const int N, const double *alpha, const double *X, const int incX,
462
 
    const double *beta, double *Y, const int incY);
 
550
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
551
    const double *beta, double *Y, ATL_CINT  incY);
463
552
 
464
553
void ATL_zgemove_a1
465
 
   (const int M, const int N, const double *alpha, const double *A,
466
 
    const int lda, double *C, const int ldc);
 
554
   (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A,
 
555
    const int lda, double *C, ATL_CINT ldc);
467
556
void ATL_zgemove_a0
468
 
   (const int M, const int N, const double *alpha, const double *A,
469
 
    const int lda, double *C, const int ldc);
 
557
   (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A,
 
558
    const int lda, double *C, ATL_CINT ldc);
470
559
void ATL_zgemove_aX
471
 
   (const int M, const int N, const double *alpha, const double *A,
472
 
    const int lda, double *C, const int ldc);
 
560
   (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A,
 
561
    const int lda, double *C, ATL_CINT ldc);
473
562
 
474
563
void ATL_zgescal_b1
475
 
   (const int M, const int N, const double *beta, double *C, const int ldc);
 
564
   (ATL_CINT  M, ATL_CINT  N, const double *beta, double *C, ATL_CINT  ldc);
476
565
void ATL_zgescal_b0
477
 
   (const int M, const int N, const double *beta, double *C, const int ldc);
 
566
   (ATL_CINT  M, ATL_CINT  N, const double *beta, double *C, ATL_CINT  ldc);
478
567
void ATL_zgescal_bX
479
 
   (const int M, const int N, const double *beta, double *C, const int ldc);
 
568
   (ATL_CINT  M, ATL_CINT  N, const double *beta, double *C, ATL_CINT  ldc);
480
569
 
481
570
/*
482
571
 * Specialized complex auxiliary routines
483
572
 */
484
573
 
 
574
void ATL_cheApAc_NB
 
575
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
576
    const float *beta, float *C, ATL_CINT ldc);
 
577
void ATL_cheApAc
 
578
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda,
 
579
    const float *beta, float *C, ATL_CINT ldc);
 
580
void ATL_cgeApBc_NB
 
581
   (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda,
 
582
    const float *B, ATL_CINT ldb, const float *beta, float *C, ATL_CINT ldc);
 
583
void ATL_ccplxdivide
 
584
   (ATL_CINT N, float *b, float *X, ATL_CINT incX, float *Y, ATL_CINT incY);
485
585
void ATL_ccplxinvert
486
586
   (const int N, float *X, const int incX, float *Y, const int incY);
487
587
 
502
602
void ATL_caxpbyConj
503
603
   (const int N, const float *alpha, const float *X, const int incX,
504
604
    const float *beta, float *Y, const int incY);
 
605
void ATL_caxpbyConj_aXi0_bXi0
 
606
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
607
    const float *beta, float *Y, ATL_CINT  incY);
 
608
void ATL_caxpbyConj_a1_bXi0
 
609
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
610
    const float *beta, float *Y, ATL_CINT  incY);
 
611
void ATL_caxpbyConj_a0_bXi0
 
612
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
613
    const float *beta, float *Y, ATL_CINT  incY);
 
614
void ATL_caxpbyConj_aX_bXi0
 
615
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
616
    const float *beta, float *Y, ATL_CINT  incY);
 
617
void ATL_caxpbyConj_aXi0_b1
 
618
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
619
    const float *beta, float *Y, ATL_CINT  incY);
 
620
void ATL_caxpbyConj_a1_b1
 
621
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
622
    const float *beta, float *Y, ATL_CINT  incY);
 
623
void ATL_caxpbyConj_a0_b1
 
624
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
625
    const float *beta, float *Y, ATL_CINT  incY);
 
626
void ATL_caxpbyConj_aX_b1
 
627
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
628
    const float *beta, float *Y, ATL_CINT  incY);
 
629
void ATL_caxpbyConj_aXi0_b0
 
630
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
631
    const float *beta, float *Y, ATL_CINT  incY);
 
632
void ATL_caxpbyConj_a1_b0
 
633
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
634
    const float *beta, float *Y, ATL_CINT  incY);
 
635
void ATL_caxpbyConj_a0_b0
 
636
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
637
    const float *beta, float *Y, ATL_CINT  incY);
 
638
void ATL_caxpbyConj_aX_b0
 
639
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
640
    const float *beta, float *Y, ATL_CINT  incY);
 
641
void ATL_caxpbyConj_aXi0_bX
 
642
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
643
    const float *beta, float *Y, ATL_CINT  incY);
 
644
void ATL_caxpbyConj_a1_bX
 
645
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
646
    const float *beta, float *Y, ATL_CINT  incY);
 
647
void ATL_caxpbyConj_a0_bX
 
648
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
649
    const float *beta, float *Y, ATL_CINT  incY);
 
650
void ATL_caxpbyConj_aX_bX
 
651
   (ATL_CINT  N, const float *alpha, const float *X, ATL_CINT  incX,
 
652
    const float *beta, float *Y, ATL_CINT  incY);
505
653
void ATL_cgemoveC(const int N, const int M, const float *alpha,
506
654
                  const float *A, const int lda, float *C, const int ldc);
507
655
 
627
775
void ATL_cgescal_bXi0
628
776
   (const int M, const int N, const float *beta, float *C, const int ldc);
629
777
 
 
778
void ATL_zheApAc_NB
 
779
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
780
    const double *beta, double *C, ATL_CINT ldc);
 
781
void ATL_zheApAc
 
782
   (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda,
 
783
    const double *beta, double *C, ATL_CINT ldc);
 
784
void ATL_zgeApBc_NB
 
785
   (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda,
 
786
    const double *B, ATL_CINT ldb, const double *beta, double *C, ATL_CINT ldc);
 
787
void ATL_zcplxdivide
 
788
   (ATL_CINT N, double *b, double *X, ATL_CINT incX, double *Y, ATL_CINT incY);
630
789
void ATL_zcplxinvert
631
790
   (const int N, double *X, const int incX, double *Y, const int incY);
632
791
 
647
806
void ATL_zaxpbyConj
648
807
   (const int N, const double *alpha, const double *X, const int incX,
649
808
    const double *beta, double *Y, const int incY);
 
809
void ATL_zaxpbyConj_aXi0_bXi0
 
810
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
811
    const double *beta, double *Y, ATL_CINT  incY);
 
812
void ATL_zaxpbyConj_a1_bXi0
 
813
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
814
    const double *beta, double *Y, ATL_CINT  incY);
 
815
void ATL_zaxpbyConj_a0_bXi0
 
816
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
817
    const double *beta, double *Y, ATL_CINT  incY);
 
818
void ATL_zaxpbyConj_aX_bXi0
 
819
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
820
    const double *beta, double *Y, ATL_CINT  incY);
 
821
void ATL_zaxpbyConj_aXi0_b1
 
822
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
823
    const double *beta, double *Y, ATL_CINT  incY);
 
824
void ATL_zaxpbyConj_a1_b1
 
825
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
826
    const double *beta, double *Y, ATL_CINT  incY);
 
827
void ATL_zaxpbyConj_a0_b1
 
828
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
829
    const double *beta, double *Y, ATL_CINT  incY);
 
830
void ATL_zaxpbyConj_aX_b1
 
831
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
832
    const double *beta, double *Y, ATL_CINT  incY);
 
833
void ATL_zaxpbyConj_aXi0_b0
 
834
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
835
    const double *beta, double *Y, ATL_CINT  incY);
 
836
void ATL_zaxpbyConj_a1_b0
 
837
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
838
    const double *beta, double *Y, ATL_CINT  incY);
 
839
void ATL_zaxpbyConj_a0_b0
 
840
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
841
    const double *beta, double *Y, ATL_CINT  incY);
 
842
void ATL_zaxpbyConj_aX_b0
 
843
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
844
    const double *beta, double *Y, ATL_CINT  incY);
 
845
void ATL_zaxpbyConj_aXi0_bX
 
846
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
847
    const double *beta, double *Y, ATL_CINT  incY);
 
848
void ATL_zaxpbyConj_a1_bX
 
849
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
850
    const double *beta, double *Y, ATL_CINT  incY);
 
851
void ATL_zaxpbyConj_a0_bX
 
852
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
853
    const double *beta, double *Y, ATL_CINT  incY);
 
854
void ATL_zaxpbyConj_aX_bX
 
855
   (ATL_CINT  N, const double *alpha, const double *X, ATL_CINT  incX,
 
856
    const double *beta, double *Y, ATL_CINT  incY);
650
857
void ATL_zgemoveC(const int N, const int M, const double *alpha,
651
858
                  const double *A, const int lda, double *C, const int ldc);
652
859
 
773
980
   (const int M, const int N, const double *beta, double *C, const int ldc);
774
981
 
775
982
 
 
983
void ATL_qdgecollapse(const int M, const int N, ATL_QTYPE *C,
 
984
                      const int dldc, const int sldc);
 
985
void ATL_dsgecollapse(const int M, const int N, double *C,
 
986
                      const int dldc, const int sldc);
 
987
void ATL_ezgecollapse(const int M, const int N, ATL_QTYPE *C,
 
988
                      const int dldc, const int sldc);
 
989
void ATL_zcgecollapse(const int M, const int N, double *C,
 
990
                      const int dldc, const int sldc);
 
991
void ATL_qdtrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag,
 
992
                      const int N, ATL_QTYPE *C, const int dldc,const int sldc);
 
993
void ATL_dstrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag,
 
994
                      const int N, double *C, const int dldc, const int sldc);
 
995
void ATL_zctrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag,
 
996
                      const int N, double *C, const int dldc, const int sldc);
 
997
void ATL_eztrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag,
 
998
                      const int N, ATL_QTYPE *C, const int dldc,const int sldc);
 
999
 
 
1000
/*
 
1001
 * This is the general LRU-based flush
 
1002
 */
776
1003
#if defined(ATL_USEPTHREADS) && !defined(ATL_flushcache)
777
1004
   #include "atlas_pthreads.h"
778
1005
   #define ATL_flushcache ATL_ptflushcache
 
1006
   #define ATL_flushCacheByAddr ATL_ptflushCacheByAddr
779
1007
   #define ATL_PTCACHEMUL * ATL_NTHREADS
780
1008
#else
781
1009
   #define ATL_PTCACHEMUL
782
1010
#endif
783
 
double ATL_flushcache(int size);
 
1011
double ATL_flushcache(long long size);
 
1012
/*
 
1013
 * If we have it, use assembly-based explicit cache-line flush algorithm
 
1014
 */
 
1015
#if defined(ATL_ARCH_PPCG5) || defined(ATL_ARCH_PPCG4) || \
 
1016
    defined(ATL_GAS_PPC) || defined(ATL_SSE2) || \
 
1017
    defined(ATL_ARCH_IA64Itan) || defined(ATL_ARCH_IA64Itan2)
 
1018
 
 
1019
   #define ATL_LINEFLUSH 1
 
1020
   typedef struct flStruct FLSTRUCT;
 
1021
   struct flStruct
 
1022
   {
 
1023
      void *p;
 
1024
      int length;
 
1025
      FLSTRUCT *next;
 
1026
   };
 
1027
   FLSTRUCT *ATL_GetFlushStruct(void *p, int length, FLSTRUCT *next);
 
1028
   void ATL_KillAllFlushStructs(FLSTRUCT *p);
 
1029
   void ATL_flushCacheByAddr(size_t N, void *vp);
 
1030
   void ATL_FlushAreasByCL(FLSTRUCT *fp);
 
1031
   #if defined(ATL_USEPTHREADS) && !defined(ATL_FlushAreasByCL)
 
1032
       void ATL_ptFlushAreasByCL(FLSTRUCT *fp);
 
1033
       #define ATL_FlushAreasByCL ATL_ptFlushAreasByCL
 
1034
   #endif
 
1035
 
 
1036
#else
 
1037
    #define ATL_LINEFLUSH 0
 
1038
#endif
784
1039
 
785
1040
#endif