int main(void) { f0(); f1(); f2(); f3(); f4(); f5(); f6(); f7(); f8(); f9(); f10(); f11(); f12(); f13(); f14(); f15(); f16(); f17(); f18(); f19(); f20(); f21(); f22(); f23(); f24(); f25(); f26(); f27(); f28(); f29(); f30(); f31(); f32(); f33(); f34(); f35(); f36(); f37(); f38(); f39(); f40(); f41(); f42(); f43(); f44(); f45(); f46(); f47(); f48(); f49(); f50(); f51(); f52(); f53(); f54(); f55(); f56(); f57(); f58(); f59(); f60(); f61(); f62(); f63(); f64(); f65(); f66(); f67(); f68(); f69(); f70(); f71(); f72(); f73(); f74(); f75(); f76(); f77(); f78(); f79(); f80(); f81(); f82(); f83(); f84(); f85(); f86(); f87(); f88(); f89(); f90(); f91(); f92(); f93(); f94(); f95(); f96(); f97(); f98(); f99(); f100(); f101(); f102(); f103(); f104(); f105(); f106(); f107(); f108(); f109(); f110(); f111(); f112(); f113(); f114(); f115(); f116(); f117(); f118(); f119(); f120(); f121(); f122(); f123(); f124(); f125(); f126(); f127(); f128(); f129(); f130(); f131(); f132(); f133(); f134(); f135(); f136(); f137(); f138(); f139(); f140(); f141(); f142(); f143(); f144(); f145(); f146(); f147(); f148(); f149(); f150(); f151(); f152(); f153(); f154(); f155(); f156(); f157(); f158(); f159(); f160(); f161(); f162(); f163(); f164(); f165(); f166(); f167(); f168(); f169(); f170(); f171(); f172(); f173(); f174(); f175(); f176(); f177(); f178(); f179(); f180(); f181(); f182(); f183(); f184(); f185(); f186(); f187(); f188(); f189(); f190(); f191(); f192(); f193(); f194(); f195(); f196(); f197(); f198(); f199(); return 0; }
int main(void) { f0(); f1(); f2(); f3(); f4(); f5(); f6(); f7(); f8(); f9(); f10(); f11(); f12(); f13(); f14(); f15(); f16(); f17(); f18(); f19(); f20(); f21(); f22(); f23(); f24(); f25(); f26(); f27(); f28(); f29(); f30(); f31(); f32(); f33(); f34(); f35(); f36(); f37(); f38(); f39(); f40(); f41(); f42(); f43(); f44(); f45(); f46(); f47(); f48(); f49(); f50(); f51(); f52(); f53(); f54(); f55(); f56(); f57(); f58(); f59(); f60(); f61(); f62(); f63(); f64(); f65(); f66(); f67(); f68(); f69(); return 0; }
inline void f3 (struct A *a) { f4 (a); while (a->i); }
int main() { IntToVoid f2 = curry(foo, 20); VoidToVoid f4 = curry(f2, 10); f4(); }
static void avx2_test (void) { int i; for (i = 0; i < N + 16; i++) { asm (""); vf1[i] = 17.0f + i; vd1[i] = 19.0 + i; } for (i = 0; i < N; i++) { asm (""); k[i] = (i * 731) & (N - 1); l[i] = (i * 657) & (N - 1); } f1 (); f2 (); for (i = 0; i < N; i++) if (vf2[i] != ((i * 731) & (N - 1)) + 17 || n[i] != ((i * 731) & (N - 1)) + 17) abort (); f3 (12); f4 (14); for (i = 0; i < N; i++) if (vf2[i] != ((i * 731) & (N - 1)) + 17 + 12 || n[i] != ((i * 731) & (N - 1)) + 17 + 14) abort (); f5 (); f6 (); for (i = 0; i < N; i++) if (vd2[i] != ((i * 731) & (N - 1)) + 19 || n[i] != ((i * 731) & (N - 1)) + 19) abort (); f7 (7); f8 (9); for (i = 0; i < N; i++) if (vd2[i] != ((i * 731) & (N - 1)) + 19 + 7 || n[i] != ((i * 731) & (N - 1)) + 19 + 9) abort (); f9 (); f10 (); for (i = 0; i < N; i++) if (vf2[i] != ((i * 657) & (N - 1)) + 17 || n[i] != ((i * 657) & (N - 1)) + 17) abort (); f11 (2); f12 (4); for (i = 0; i < N; i++) if (vf2[i] != ((i * 657) & (N - 1)) + 17 + 2 || n[i] != ((i * 657) & (N - 1)) + 17 + 4) abort (); f13 (); f14 (); for (i = 0; i < N; i++) if (vd2[i] != ((i * 657) & (N - 1)) + 19 || n[i] != ((i * 657) & (N - 1)) + 19) abort (); f15 (13); f16 (15); for (i = 0; i < N; i++) if (vd2[i] != ((i * 657) & (N - 1)) + 19 + 13 || n[i] != ((i * 657) & (N - 1)) + 19 + 15) abort (); }
int f5(int a1, int a2, int a3, int a4, int a5) { f4(a1, a2, a3, a4); f1(a5); return 0; }
void CPersFunc::PersFunc() { if (PR1_htValid) { switch (PR1_htInst) { case TEST: { { uint8_t o = 6; uint8_t i = 7; f3(i, o); if (o != 13) { HtAssert(0, (uint32_t)o); P1_err += 1; } } { uint8_t a=3; uint8_t b=4; uint8_t c1 = f2(a, b); uint8_t c2 = f2(a); uint8_t c3 = f2(); if (c1 != 7 || c2 != 5 || c3 != 3) { HtAssert(0, (uint32_t)((c3 << 16) | (c2 << 8) | c1)); P1_err += 1; } } { int d=1; s1 a; a.m_f1[0] = 1; a.m_f1[0] += 1; a.m_f1[0] ++; a.m_f1[(ht_uint2)d] = 0; a.m_f1[(ht_uint2)d] += 1; a.m_f1[d&3] ++; f1(a.m_f1[0], a.m_f1[(ht_uint2)d]); if (a.m_f1[0] != 3) { HtAssert(0, (uint32_t)a.m_f1[0]); P1_err += 1; } if (a.m_f1[(ht_uint2)d] != 5) { HtAssert(0, (uint32_t)a.m_f1[(ht_uint2)d]); P1_err += 1; } } { int d=1; uint8_t a[2] = { 0 }; a[0] = 1; a[0] += 1; a[0] ++; a[(ht_uint1)d] = 0; a[(ht_uint1)d] += 1; a[d&1] ++; f1(a[0], a[(ht_uint1)d]); if (a[0] != 3) { HtAssert(0, (uint32_t)a[0]); P1_err += 1; } if (a[(ht_uint1)d] != 5) { HtAssert(0, (uint32_t)a[(ht_uint1)d]); P1_err += 1; } } { ht_uint2 d=2; ht_uint2 e = 1; s2 a[4]; a[0].m_f1[0] = 1; a[1].m_f1[0] = 1; a[2].m_f1[0] = 1; a[3].m_f1[0] = 1; a[d].m_f1[0] += 1; a[2].m_f1[0] ++; a[e].m_f1[(ht_uint2)d] = 0; a[1].m_f1[(ht_uint2)d] += 1; a[e].m_f1[d&3] ++; f1(a[d].m_f1[0], a[e].m_f1[d]); if (a[d].m_f1[0] != 3) { HtAssert(0, (uint32_t)a[d].m_f1[0]); P1_err += 1; } if (a[e].m_f1[d] != 5) { HtAssert(0, (uint32_t)a[e].m_f1[d]); P1_err += 1; } } { T1_bool = true; P1_s4.m_u8 = 1; f4(P1_s4); if (P1_s4.m_u8 != 2) { HtAssert(0, (uint32_t)P1_s4.m_u8); P1_err += 1; } } if (P1_err) P1_cnt = 128; HtContinue(RTN); } break; case RTN: { if (SendReturnBusy_htmain()) { HtRetry(); break; } // let HtAssert propagate if (P1_cnt) { P1_cnt -= 1; HtContinue(RTN); } SendReturn_htmain(P1_err); } break; default: assert(0); } } }
void TabulatorTet<Scalar,ArrayScalar,0>::tabulate( ArrayScalar &outputValues , const int deg , const ArrayScalar &z ) { const int np = z.dimension( 0 ); int idxcur; // each point needs to be transformed from Pavel's element // z(i,0) --> (2.0 * z(i,0) - 1.0) // z(i,1) --> (2.0 * z(i,1) - 1.0) // z(i,2) --> (2.0 * z(i,2) - 1.0) Teuchos::Array<Scalar> f1(np),f2(np),f3(np),f4(np),f5(np); for (int i=0;i<np;i++) { f1[i] = 0.5 * ( 2.0 + 2.0*(2.0*z(i,0)-1.0) + (2.0*z(i,1)-1.0) + (2.0*z(i,2)-1.0) ); Scalar foo = 0.5 * ( (2.0*z(i,1)-1.0) + (2.0*z(i,2)-1.0) ); f2[i] = foo * foo; f3[i] = 0.5 * ( 1.0 + 2.0 * (2.0*z(i,1)-1.0) + (2.0*z(i,2)-1.0) ); f4[i] = 0.5 * ( 1.0 - (2.0*z(i,2)-1.0) ); f5[i] = f4[i] * f4[i]; } // constant term idxcur = TabulatorTet<Scalar,ArrayScalar,0>::idx(0,0,0); for (int i=0;i<np;i++) { outputValues(idxcur,i) = 1.0 + z(i,0) - z(i,0) + z(i,1) - z(i,1) + z(i,2) - z(i,2); } if (deg > 0) { // D^{1,0,0} idxcur = TabulatorTet<Scalar,ArrayScalar,0>::idx(1,0,0); for (int i=0;i<np;i++) { outputValues(idxcur,i) = f1[i]; } // p recurrence for (int p=1;p<deg;p++) { Scalar a1 = (2.0 * p + 1.0) / ( p + 1.0); Scalar a2 = p / ( p + 1.0 ); int idxp = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,0,0); int idxpp1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p+1,0,0); int idxpm1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p-1,0,0); for (int i=0;i<np;i++) { outputValues(idxpp1,i) = a1 * f1[i] * outputValues(idxp,i) - a2 * f2[i] * outputValues(idxpm1,i); } } // q = 1 for (int p=0;p<deg;p++) { int idx0 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,0,0); int idx1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,1,0); for (int i=0;i<np;i++) { outputValues(idx1,i) = outputValues(idx0,i) * ( p * ( 1.0 + (2.0*z(i,1)-1.0) ) + 0.5 * ( 2.0 + 3.0 * (2.0*z(i,1)-1.0) + (2.0*z(i,2)-1.0) ) ); } } // q recurrence for (int p=0;p<deg-1;p++) { for (int q=1;q<deg-p;q++) { Scalar aq,bq,cq; TabulatorTet<Scalar,ArrayScalar,0>::jrc(2.0*p+1.0 ,0 ,q, aq, bq, cq); int idxpqp1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q+1,0); int idxpq = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,0); int idxpqm1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q-1,0); for (int i=0;i<np;i++) { outputValues(idxpqp1,i) = ( aq * f3[i] + bq * f4[i] ) * outputValues(idxpq,i) - ( cq * f5[i] ) * outputValues(idxpqm1,i); } } } // r = 1 for (int p=0;p<deg;p++) { for (int q=0;q<deg-p;q++) { int idxpq1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,1); int idxpq0 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,0); for (int i=0;i<np;i++) { outputValues(idxpq1,i) = outputValues(idxpq0,i) * ( 1.0 + p + q + ( 2.0 + q + p ) * (2.0*z(i,2)-1.0) ); } } } // general r recurrence for (int p=0;p<deg-1;p++) { for (int q=0;q<deg-p-1;q++) { for (int r=1;r<deg-p-q;r++) { Scalar ar,br,cr; int idxpqrp1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,r+1); int idxpqr = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,r); int idxpqrm1 = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,r-1); jrc(2.0*p+2.0*q+2.0, 0.0, r, ar, br, cr); for (int i=0;i<np;i++) { outputValues(idxpqrp1,i) = (ar * (2.0*z(i,2)-1.0) + br) * outputValues( idxpqr , i ) - cr * outputValues(idxpqrm1,i); } } } } } // normalize for (int p=0;p<=deg;p++) { for (int q=0;q<=deg-p;q++) { for (int r=0;r<=deg-p-q;r++) { int idxcur = TabulatorTet<Scalar,ArrayScalar,0>::idx(p,q,r); Scalar scal = sqrt( (p+0.5)*(p+q+1.0)*(p+q+r+1.5) ); for (int i=0;i<np;i++) { outputValues(idxcur,i) *= scal; } } } } return; }