int main(void) { double d, z[4]; int i, nbad; static ADVar a, b, c, x, y, *v[3] = {&a, &b, &c}; static ADVar **V[4] = {v, v+1, v+2, v}; static size_t np[4] = {1, 1, 1, 3}; static double w[3] = { 1., 1., 1. }; static double *W[4] = {w, w, w, w}; nbad = 0; for(d = 1.; d <= 2.; ++d) { printf("\nd = %g\n", d); x = 2; y = 3; a = foo(d,x,y); b = goo(d,x,y); c = a + b; ADVar::Outvar_Gradcomp(a); printf("a = %g\n", a.val()); printf("da/dx = %g\n", x.adj()); printf("da/dy = %g\n", y.adj()); nbad += acheck(0, d, a.val(), x.adj(), y.adj()); z[0] = a.val(); ADVar::Outvar_Gradcomp(b); printf("b = %g\n", b.val()); printf("db/dx = %g\n", x.adj()); printf("db/dy = %g\n", y.adj()); nbad += acheck(1, d, b.val(), x.adj(), y.adj()); z[1] = b.val(); ADVar::Outvar_Gradcomp(c); printf("c = %g (should be a + b)\n", c.val()); printf("dc/dx = %g\n", x.adj()); printf("dc/dy = %g\n", y.adj()); nbad += acheck(2, d, c.val(), x.adj(), y.adj()); z[2] = c.val(); z[3] = z[0] + z[1] + z[2]; ADVar::Weighted_GradcompVec(4,np,V,W); for(i = 0; i < 4; ++i) { printf("w %d:\td/dx = %g\td/dy = %g\n", i, x.adj(i), y.adj(i)); nbad += acheck(i, d, z[i], x.adj(i), y.adj(i)); } } if (nbad == 0) printf("\nExample passed!\n"); else printf("\nSomething is wrong, example failed!\n"); return nbad > 0; }
int main() { int T; scanf("%d", &T); while(T--) { scanf("%s%s", a, b); if(check(a, b)) puts("friends"); else if(acheck(a, b) || acheck(b, a)) puts("almost friends"); else puts("nothing"); } return 0; }
void random_init () { if (initialized) random_update (); else { random_start (); while (!nupdates) acheck (); } }
void rndkbd (const str &msg) { if (msg) warnx << msg << "\n"; warnx << "\nI need secret bits with which to" " seed the random number generator.\n" "Please type some random or unguessable text until you hear a beep:\n"; bool finished = false; if (!getkbdnoise (64, &rnd_input, wrap (&setbool, &finished))) fatal << "no tty\n"; while (!finished) acheck (); }