#include "f2c.h"
struct {
integer icase, n, incx, incy, mode;
logical pass;
} combla_;
#define combla_1 combla_
static integer c__1 = 1;
static integer c__9 = 9;
static integer c__5 = 5;
static real c_b43 = 1.f;
static real c_b52 = 0.f;
int main(void)
{
#ifdef BLIS_ENABLE_HPX
char* program = "cblat1";
bli_thread_initialize_hpx( 1, &program );
#endif
static real sfac = 9.765625e-4f;
static char fmt_99999[] = "(\002 Complex BLAS Test Program Results\002,/"
"1x)";
static char fmt_99998[] = "(\002 ----"
"- PASS -----\002)";
integer s_wsfe(cilist *), e_wsfe(void);
int s_stop(char *, ftnlen);
integer ic;
extern int check1_(real *), check2_(real *), header_(
void);
static cilist io___2 = { 0, 6, 0, fmt_99999, 0 };
static cilist io___4 = { 0, 6, 0, fmt_99998, 0 };
s_wsfe(&io___2);
e_wsfe();
for (ic = 1; ic <= 10; ++ic) {
combla_1.icase = ic;
header_();
combla_1.pass = TRUE_;
combla_1.incx = 9999;
combla_1.incy = 9999;
combla_1.mode = 9999;
if (combla_1.icase <= 5) {
check2_(&sfac);
} else if (combla_1.icase >= 6) {
check1_(&sfac);
}
if (combla_1.pass) {
s_wsfe(&io___4);
e_wsfe();
}
}
s_stop("", (ftnlen)0);
#ifdef BLIS_ENABLE_HPX
return bli_thread_finalize_hpx();
#else
return 0;
#endif
}
int header_(void)
{
static char l[6*10] = "CDOTC " "CDOTU " "CAXPY " "CCOPY " "CSWAP " "SCNR"
"M2" "SCASUM" "CSCAL " "CSSCAL" "ICAMAX";
static char fmt_99999[] = "(/\002 Test of subprogram number\002,i3,12x,a"
"6)";
integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
static cilist io___6 = { 0, 6, 0, fmt_99999, 0 };
s_wsfe(&io___6);
do_fio(&c__1, (char *)&combla_1.icase, (ftnlen)sizeof(integer));
do_fio(&c__1, l + (0 + (0 + (combla_1.icase - 1) * 6)), (ftnlen)6);
e_wsfe();
return 0;
}
int check1_(real *sfac)
{
static real strue2[5] = { 0.f,.5f,.6f,.7f,.8f };
static real strue4[5] = { 0.f,.7f,1.f,1.3f,1.6f };
static complex ctrue5[80] = { {.1f,.1f},{1.f,2.f},{
1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{-.16f,
-.37f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f}
,{3.f,4.f},{-.17f,-.19f},{.13f,-.39f},{5.f,6.f},{5.f,6.f},{5.f,
6.f},{5.f,6.f},{5.f,6.f},{5.f,6.f},{.11f,-.03f},{-.17f,.46f},{
-.17f,-.19f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{
.19f,-.17f},{.2f,-.35f},{.35f,.2f},{.14f,.08f},{2.f,3.f},{2.f,3.f}
,{2.f,3.f},{2.f,3.f},{.1f,.1f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{4.f,
5.f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{-.16f,-.37f},{6.f,7.f},{6.f,
7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{-.17f,
-.19f},{8.f,9.f},{.13f,-.39f},{2.f,5.f},{2.f,5.f},{2.f,5.f},{2.f,
5.f},{2.f,5.f},{.11f,-.03f},{3.f,6.f},{-.17f,.46f},{4.f,7.f},{
-.17f,-.19f},{7.f,2.f},{7.f,2.f},{7.f,2.f},{.19f,-.17f},{5.f,8.f},
{.2f,-.35f},{6.f,9.f},{.35f,.2f},{8.f,3.f},{.14f,.08f},{9.f,4.f} }
;
static complex ctrue6[80] = { {.1f,.1f},{1.f,2.f},{
1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{.09f,
-.12f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f}
,{3.f,4.f},{.03f,-.09f},{.15f,-.03f},{5.f,6.f},{5.f,6.f},{5.f,6.f}
,{5.f,6.f},{5.f,6.f},{5.f,6.f},{.03f,.03f},{-.18f,.03f},{.03f,
-.09f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{.09f,
.03f},{.15f,0.f},{0.f,.15f},{0.f,.06f},{2.f,3.f},{2.f,3.f},{2.f,
3.f},{2.f,3.f},{.1f,.1f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{
4.f,5.f},{4.f,5.f},{4.f,5.f},{.09f,-.12f},{6.f,7.f},{6.f,7.f},{
6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{.03f,-.09f},{
8.f,9.f},{.15f,-.03f},{2.f,5.f},{2.f,5.f},{2.f,5.f},{2.f,5.f},{
2.f,5.f},{.03f,.03f},{3.f,6.f},{-.18f,.03f},{4.f,7.f},{.03f,-.09f}
,{7.f,2.f},{7.f,2.f},{7.f,2.f},{.09f,.03f},{5.f,8.f},{.15f,0.f},{
6.f,9.f},{0.f,.15f},{8.f,3.f},{0.f,.06f},{9.f,4.f} };
static integer itrue3[5] = { 0,1,2,2,2 };
static real sa = .3f;
static complex ca = {.4f,-.7f};
static complex cv[80] = { {.1f,.1f},{1.f,2.f},{
1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{1.f,2.f},{.3f,
-.4f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},{3.f,4.f},
{3.f,4.f},{.1f,-.3f},{.5f,-.1f},{5.f,6.f},{5.f,6.f},{5.f,6.f},{
5.f,6.f},{5.f,6.f},{5.f,6.f},{.1f,.1f},{-.6f,.1f},{.1f,-.3f},{7.f,
8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{7.f,8.f},{.3f,.1f},{.5f,0.f},{
0.f,.5f},{0.f,.2f},{2.f,3.f},{2.f,3.f},{2.f,3.f},{2.f,3.f},{.1f,
.1f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{4.f,5.f},{
4.f,5.f},{.3f,-.4f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,7.f},{6.f,
7.f},{6.f,7.f},{6.f,7.f},{.1f,-.3f},{8.f,9.f},{.5f,-.1f},{2.f,5.f}
,{2.f,5.f},{2.f,5.f},{2.f,5.f},{2.f,5.f},{.1f,.1f},{3.f,6.f},{
-.6f,.1f},{4.f,7.f},{.1f,-.3f},{7.f,2.f},{7.f,2.f},{7.f,2.f},{.3f,
.1f},{5.f,8.f},{.5f,0.f},{6.f,9.f},{0.f,.5f},{8.f,3.f},{0.f,.2f},{
9.f,4.f} };
integer i__1, i__2, i__3;
real r__1;
complex q__1;
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
e_wsle(void);
int s_stop(char *, ftnlen);
integer i__;
complex cx[8];
integer np1, len;
extern int cscal_(integer *, complex *, complex *,
integer *), ctest_(integer *, complex *, complex *, complex *,
real *);
complex mwpcs[5], mwpct[5];
extern real scnrm2_(integer *, complex *, integer *);
extern int itest1_(integer *, integer *), stest1_(real *,
real *, real *, real *);
extern integer icamax_(integer *, complex *, integer *);
extern int csscal_(integer *, real *, complex *, integer
*);
extern real scasum_(integer *, complex *, integer *);
static cilist io___19 = { 0, 6, 0, 0, 0 };
for (combla_1.incx = 1; combla_1.incx <= 2; ++combla_1.incx) {
for (np1 = 1; np1 <= 5; ++np1) {
combla_1.n = np1 - 1;
len = max(combla_1.n,1) << 1;
i__1 = len;
for (i__ = 1; i__ <= i__1; ++i__) {
i__2 = i__ - 1;
i__3 = i__ + (np1 + combla_1.incx * 5 << 3) - 49;
cx[i__2].r = cv[i__3].r, cx[i__2].i = cv[i__3].i;
}
if (combla_1.icase == 6) {
r__1 = scnrm2_(&combla_1.n, cx, &combla_1.incx);
stest1_(&r__1, &strue2[np1 - 1], &strue2[np1 - 1], sfac);
} else if (combla_1.icase == 7) {
r__1 = scasum_(&combla_1.n, cx, &combla_1.incx);
stest1_(&r__1, &strue4[np1 - 1], &strue4[np1 - 1], sfac);
} else if (combla_1.icase == 8) {
cscal_(&combla_1.n, &ca, cx, &combla_1.incx);
ctest_(&len, cx, &ctrue5[(np1 + combla_1.incx * 5 << 3) - 48],
&ctrue5[(np1 + combla_1.incx * 5 << 3) - 48], sfac);
} else if (combla_1.icase == 9) {
csscal_(&combla_1.n, &sa, cx, &combla_1.incx);
ctest_(&len, cx, &ctrue6[(np1 + combla_1.incx * 5 << 3) - 48],
&ctrue6[(np1 + combla_1.incx * 5 << 3) - 48], sfac);
} else if (combla_1.icase == 10) {
i__1 = icamax_(&combla_1.n, cx, &combla_1.incx);
itest1_(&i__1, &itrue3[np1 - 1]);
} else {
s_wsle(&io___19);
do_lio(&c__9, &c__1, " Shouldn't be here in CHECK1", (ftnlen)
28);
e_wsle();
s_stop("", (ftnlen)0);
}
}
}
combla_1.incx = 1;
if (combla_1.icase == 8) {
ca.r = 0.f, ca.i = 0.f;
for (i__ = 1; i__ <= 5; ++i__) {
i__1 = i__ - 1;
mwpct[i__1].r = 0.f, mwpct[i__1].i = 0.f;
i__1 = i__ - 1;
mwpcs[i__1].r = 1.f, mwpcs[i__1].i = 1.f;
}
cscal_(&c__5, &ca, cx, &combla_1.incx);
ctest_(&c__5, cx, mwpct, mwpcs, sfac);
} else if (combla_1.icase == 9) {
sa = 0.f;
for (i__ = 1; i__ <= 5; ++i__) {
i__1 = i__ - 1;
mwpct[i__1].r = 0.f, mwpct[i__1].i = 0.f;
i__1 = i__ - 1;
mwpcs[i__1].r = 1.f, mwpcs[i__1].i = 1.f;
}
csscal_(&c__5, &sa, cx, &combla_1.incx);
ctest_(&c__5, cx, mwpct, mwpcs, sfac);
sa = 1.f;
for (i__ = 1; i__ <= 5; ++i__) {
i__1 = i__ - 1;
i__2 = i__ - 1;
mwpct[i__1].r = cx[i__2].r, mwpct[i__1].i = cx[i__2].i;
i__1 = i__ - 1;
i__2 = i__ - 1;
mwpcs[i__1].r = cx[i__2].r, mwpcs[i__1].i = cx[i__2].i;
}
csscal_(&c__5, &sa, cx, &combla_1.incx);
ctest_(&c__5, cx, mwpct, mwpcs, sfac);
sa = -1.f;
for (i__ = 1; i__ <= 5; ++i__) {
i__1 = i__ - 1;
i__2 = i__ - 1;
q__1.r = -cx[i__2].r, q__1.i = -cx[i__2].i;
mwpct[i__1].r = q__1.r, mwpct[i__1].i = q__1.i;
i__1 = i__ - 1;
i__2 = i__ - 1;
q__1.r = -cx[i__2].r, q__1.i = -cx[i__2].i;
mwpcs[i__1].r = q__1.r, mwpcs[i__1].i = q__1.i;
}
csscal_(&c__5, &sa, cx, &combla_1.incx);
ctest_(&c__5, cx, mwpct, mwpcs, sfac);
}
return 0;
}
int check2_(real *sfac)
{
static complex ca = {.4f,-.7f};
static integer incxs[4] = { 1,2,-2,-1 };
static integer incys[4] = { 1,-2,1,-2 };
static integer lens[8] = { 1,1,2,4,1,1,3,7 };
static integer ns[4] = { 0,1,2,4 };
static complex cx1[7] = { {.7f,-.8f},{-.4f,-.7f},{-.1f,-.9f},{.2f,-.8f},{
-.9f,-.4f},{.1f,.4f},{-.6f,.6f} };
static complex cy1[7] = { {.6f,-.6f},{-.9f,.5f},{.7f,-.6f},{.1f,-.5f},{
-.1f,-.2f},{-.5f,-.3f},{.8f,-.7f} };
static complex ct8[112] = { {.6f,-.6f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.32f,-1.41f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.32f,
-1.41f},{-1.55f,.5f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{.32f,-1.41f},{-1.55f,.5f},{.03f,-.89f},{-.38f,-.96f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{0.f,0.f},{.32f,-1.41f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{-.07f,-.89f},{-.9f,.5f},{
.42f,-1.41f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.78f,.06f},{
-.9f,.5f},{.06f,-.13f},{.1f,-.5f},{-.77f,-.49f},{-.5f,-.3f},{.52f,
-1.51f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{.32f,-1.41f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{-.07f,-.89f},{-1.18f,-.31f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.78f,.06f},{-1.54f,.97f},{
.03f,-.89f},{-.18f,-1.31f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,
-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{.32f,-1.41f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{.32f,-1.41f},{-.9f,.5f},{.05f,-.6f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{.32f,-1.41f},{-.9f,.5f},{.05f,-.6f},{.1f,
-.5f},{-.77f,-.49f},{-.5f,-.3f},{.32f,-1.16f} };
static complex ct7[16] = { {0.f,0.f},{-.06f,-.9f},{
.65f,-.47f},{-.34f,-1.22f},{0.f,0.f},{-.06f,-.9f},{-.59f,-1.46f},{
-1.04f,-.04f},{0.f,0.f},{-.06f,-.9f},{-.83f,.59f},{.07f,-.37f},{
0.f,0.f},{-.06f,-.9f},{-.76f,-1.15f},{-1.33f,-1.82f} };
static complex ct6[16] = { {0.f,0.f},{.9f,.06f},{
.91f,-.77f},{1.8f,-.1f},{0.f,0.f},{.9f,.06f},{1.45f,.74f},{.2f,
.9f},{0.f,0.f},{.9f,.06f},{-.55f,.23f},{.83f,-.39f},{0.f,0.f},{
.9f,.06f},{1.04f,.79f},{1.95f,1.22f} };
static complex ct10x[112] = { {.7f,-.8f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,-.6f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,-.6f},
{-.9f,.5f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,
-.6f},{-.9f,.5f},{.7f,-.6f},{.1f,-.5f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{.7f,-.8f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{.7f,-.6f},{-.4f,-.7f},{.6f,-.6f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{.8f,-.7f},{-.4f,-.7f},{-.1f,-.2f},{.2f,
-.8f},{.7f,-.6f},{.1f,.4f},{.6f,-.6f},{.7f,-.8f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,-.6f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{-.9f,.5f},{
-.4f,-.7f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{
.1f,-.5f},{-.4f,-.7f},{.7f,-.6f},{.2f,-.8f},{-.9f,.5f},{.1f,.4f},{
.6f,-.6f},{.7f,-.8f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{.6f,-.6f},{.7f,-.6f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{.6f,-.6f},{.7f,-.6f},{-.1f,-.2f},{
.8f,-.7f},{0.f,0.f},{0.f,0.f},{0.f,0.f} };
static complex ct10y[112] = { {.6f,-.6f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.7f,-.8f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.7f,-.8f},
{-.4f,-.7f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{
.7f,-.8f},{-.4f,-.7f},{-.1f,-.9f},{.2f,-.8f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{.7f,-.8f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{-.1f,-.9f},{-.9f,.5f},{.7f,-.8f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{-.6f,.6f},{-.9f,.5f},{-.9f,-.4f},{
.1f,-.5f},{-.1f,-.9f},{-.5f,-.3f},{.7f,-.8f},{.6f,-.6f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{.7f,-.8f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{-.1f,-.9f}
,{.7f,-.8f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{
-.6f,.6f},{-.9f,-.4f},{-.1f,-.9f},{.7f,-.8f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{.6f,-.6f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{.7f,-.8f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},
{0.f,0.f},{0.f,0.f},{.7f,-.8f},{-.9f,.5f},{-.4f,-.7f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{.7f,-.8f},{-.9f,.5f},{-.4f,-.7f},{
.1f,-.5f},{-.1f,-.9f},{-.5f,-.3f},{.2f,-.8f} };
static complex csize1[4] = { {0.f,0.f},{.9f,.9f},{1.63f,1.73f},{2.9f,
2.78f} };
static complex csize3[14] = { {0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{
0.f,0.f},{0.f,0.f},{0.f,0.f},{1.17f,1.17f},{1.17f,1.17f},{1.17f,
1.17f},{1.17f,1.17f},{1.17f,1.17f},{1.17f,1.17f},{1.17f,1.17f} };
static complex csize2[14] = { {0.f,0.f},{0.f,0.f},{0.f,
0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{0.f,0.f},{1.54f,1.54f},{1.54f,
1.54f},{1.54f,1.54f},{1.54f,1.54f},{1.54f,1.54f},{1.54f,1.54f},{
1.54f,1.54f} };
integer i__1, i__2;
complex q__1;
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
e_wsle(void);
int s_stop(char *, ftnlen);
integer i__, ki, kn;
complex cx[7], cy[7];
integer mx, my;
complex cdot[1];
integer lenx, leny;
extern
#ifdef BLIS_ENABLE_COMPLEX_RETURN_INTEL
void cdotc_(complex *,
#else
complex cdotc_(
#endif
integer *, complex *, integer
*, complex *, integer *);
extern int ccopy_(integer *, complex *, integer *,
complex *, integer *);
extern
#ifdef BLIS_ENABLE_COMPLEX_RETURN_INTEL
void cdotu_(complex *,
#else
complex cdotu_(
#endif
integer *, complex *, integer
*, complex *, integer *);
extern int cswap_(integer *, complex *, integer *,
complex *, integer *), ctest_(integer *, complex *, complex *,
complex *, real *);
integer ksize;
extern int caxpy_(integer *, complex *, complex *,
integer *, complex *, integer *);
static cilist io___48 = { 0, 6, 0, 0, 0 };
for (ki = 1; ki <= 4; ++ki) {
combla_1.incx = incxs[ki - 1];
combla_1.incy = incys[ki - 1];
mx = abs(combla_1.incx);
my = abs(combla_1.incy);
for (kn = 1; kn <= 4; ++kn) {
combla_1.n = ns[kn - 1];
ksize = min(2,kn);
lenx = lens[kn + (mx << 2) - 5];
leny = lens[kn + (my << 2) - 5];
for (i__ = 1; i__ <= 7; ++i__) {
i__1 = i__ - 1;
i__2 = i__ - 1;
cx[i__1].r = cx1[i__2].r, cx[i__1].i = cx1[i__2].i;
i__1 = i__ - 1;
i__2 = i__ - 1;
cy[i__1].r = cy1[i__2].r, cy[i__1].i = cy1[i__2].i;
}
if (combla_1.icase == 1) {
#ifdef BLIS_ENABLE_COMPLEX_RETURN_INTEL
cdotc_(&q__1,
#else
q__1 = cdotc_(
#endif
&combla_1.n, cx, &combla_1.incx, cy, &
combla_1.incy);
cdot[0].r = q__1.r, cdot[0].i = q__1.i;
ctest_(&c__1, cdot, &ct6[kn + (ki << 2) - 5], &csize1[kn - 1],
sfac);
} else if (combla_1.icase == 2) {
#ifdef BLIS_ENABLE_COMPLEX_RETURN_INTEL
cdotu_(&q__1,
#else
q__1 = cdotu_(
#endif
&combla_1.n, cx, &combla_1.incx, cy, &
combla_1.incy);
cdot[0].r = q__1.r, cdot[0].i = q__1.i;
ctest_(&c__1, cdot, &ct7[kn + (ki << 2) - 5], &csize1[kn - 1],
sfac);
} else if (combla_1.icase == 3) {
caxpy_(&combla_1.n, &ca, cx, &combla_1.incx, cy, &
combla_1.incy);
ctest_(&leny, cy, &ct8[(kn + (ki << 2)) * 7 - 35], &csize2[
ksize * 7 - 7], sfac);
} else if (combla_1.icase == 4) {
ccopy_(&combla_1.n, cx, &combla_1.incx, cy, &combla_1.incy);
ctest_(&leny, cy, &ct10y[(kn + (ki << 2)) * 7 - 35], csize3, &
c_b43);
} else if (combla_1.icase == 5) {
cswap_(&combla_1.n, cx, &combla_1.incx, cy, &combla_1.incy);
ctest_(&lenx, cx, &ct10x[(kn + (ki << 2)) * 7 - 35], csize3, &
c_b43);
ctest_(&leny, cy, &ct10y[(kn + (ki << 2)) * 7 - 35], csize3, &
c_b43);
} else {
s_wsle(&io___48);
do_lio(&c__9, &c__1, " Shouldn't be here in CHECK2", (ftnlen)
28);
e_wsle();
s_stop("", (ftnlen)0);
}
}
}
return 0;
}
int stest_(integer *len, real *scomp, real *strue, real *
ssize, real *sfac)
{
static char fmt_99999[] = "(\002 F"
"AIL\002)";
static char fmt_99998[] = "(/\002 CASE N INCX INCY MODE I "
" \002,\002 COMP(I) TRU"
"E(I) DIFFERENCE\002,\002 SIZE(I)\002,/1x)";
static char fmt_99997[] = "(1x,i4,i3,3i5,i3,2e36.8,2e12.4)";
integer i__1;
real r__1, r__2;
integer s_wsfe(cilist *), e_wsfe(void), do_fio(integer *, char *, ftnlen);
integer i__;
real sd;
extern real s_epsilon_(real *);
static cilist io___51 = { 0, 6, 0, fmt_99999, 0 };
static cilist io___52 = { 0, 6, 0, fmt_99998, 0 };
static cilist io___53 = { 0, 6, 0, fmt_99997, 0 };
--ssize;
--strue;
--scomp;
i__1 = *len;
for (i__ = 1; i__ <= i__1; ++i__) {
sd = scomp[i__] - strue[i__];
if ((r__2 = *sfac * sd, abs(r__2)) <= (r__1 = ssize[i__], abs(r__1)) *
s_epsilon_(&c_b52)) {
goto L40;
}
if (! combla_1.pass) {
goto L20;
}
combla_1.pass = FALSE_;
s_wsfe(&io___51);
e_wsfe();
s_wsfe(&io___52);
e_wsfe();
L20:
s_wsfe(&io___53);
do_fio(&c__1, (char *)&combla_1.icase, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.n, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.incx, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.incy, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.mode, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&i__, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&scomp[i__], (ftnlen)sizeof(real));
do_fio(&c__1, (char *)&strue[i__], (ftnlen)sizeof(real));
do_fio(&c__1, (char *)&sd, (ftnlen)sizeof(real));
do_fio(&c__1, (char *)&ssize[i__], (ftnlen)sizeof(real));
e_wsfe();
L40:
;
}
return 0;
}
int stest1_(real *scomp1, real *strue1, real *ssize, real *
sfac)
{
real scomp[1], strue[1];
extern int stest_(integer *, real *, real *, real *,
real *);
--ssize;
scomp[0] = *scomp1;
strue[0] = *strue1;
stest_(&c__1, scomp, strue, &ssize[1], sfac);
return 0;
}
real sdiff_(real *sa, real *sb)
{
real ret_val;
ret_val = *sa - *sb;
return ret_val;
}
int ctest_(integer *len, complex *ccomp, complex *ctrue,
complex *csize, real *sfac)
{
integer i__1, i__2;
double r_imag(complex *);
integer i__;
real scomp[20], ssize[20], strue[20];
extern int stest_(integer *, real *, real *, real *,
real *);
--csize;
--ctrue;
--ccomp;
i__1 = *len;
for (i__ = 1; i__ <= i__1; ++i__) {
i__2 = i__;
scomp[(i__ << 1) - 2] = ccomp[i__2].r;
scomp[(i__ << 1) - 1] = r_imag(&ccomp[i__]);
i__2 = i__;
strue[(i__ << 1) - 2] = ctrue[i__2].r;
strue[(i__ << 1) - 1] = r_imag(&ctrue[i__]);
i__2 = i__;
ssize[(i__ << 1) - 2] = csize[i__2].r;
ssize[(i__ << 1) - 1] = r_imag(&csize[i__]);
}
i__1 = *len << 1;
stest_(&i__1, scomp, strue, ssize, sfac);
return 0;
}
int itest1_(integer *icomp, integer *itrue)
{
static char fmt_99999[] = "(\002 F"
"AIL\002)";
static char fmt_99998[] = "(/\002 CASE N INCX INCY MODE "
" \002,\002 COMP TRU"
"E DIFFERENCE\002,/1x)";
static char fmt_99997[] = "(1x,i4,i3,3i5,2i36,i12)";
integer s_wsfe(cilist *), e_wsfe(void), do_fio(integer *, char *, ftnlen);
integer id;
static cilist io___60 = { 0, 6, 0, fmt_99999, 0 };
static cilist io___61 = { 0, 6, 0, fmt_99998, 0 };
static cilist io___63 = { 0, 6, 0, fmt_99997, 0 };
if (*icomp == *itrue) {
goto L40;
}
if (! combla_1.pass) {
goto L20;
}
combla_1.pass = FALSE_;
s_wsfe(&io___60);
e_wsfe();
s_wsfe(&io___61);
e_wsfe();
L20:
id = *icomp - *itrue;
s_wsfe(&io___63);
do_fio(&c__1, (char *)&combla_1.icase, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.n, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.incx, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.incy, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&combla_1.mode, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&(*icomp), (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&(*itrue), (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&id, (ftnlen)sizeof(integer));
e_wsfe();
L40:
return 0;
}
int cblat1_ () { main (); return 0; }