From da0023d685eea96f713b55c0c16d8a33fc7832b7 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Tue, 2 Jan 2001 17:48:50 +0000 Subject: [PATCH] - Add Denny-Fliegner test. --- cint/exam_misc.cpp | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/cint/exam_misc.cpp b/cint/exam_misc.cpp index d237e97e..b499364e 100755 --- a/cint/exam_misc.cpp +++ b/cint/exam_misc.cpp @@ -1,11 +1,33 @@ #! ./run_exams --silent unsigned result = 0; +/* + * A simple substitution test. If it fails you are really in trouble: + */ { - symbol a("a"), b("b"); - ex e, f; - e = pow(a+b,200).expand(); - f = e.subs(a == -b); - if (f != 0) - ++result; + symbol x("x"), y("y"); + ex e, f; + e = pow(x+y,200).expand(); + f = e.subs(x == -y); + if (f != 0) + ++result; +} +/* + * Denny Fliegner's test using vector is rather hard on Cint. If + * it fails due to missing it's due to your compiler not being + * fully ANSI-compliant. Don't worry. + */ +#include +{ + vector a; + ex bigsum = 0; + for (int i=0; i<42; ++i) { + ostringstream buf; + buf << "a" << i << ends; + a.push_back(symbol(buf.str())); + bigsum += a[i]; + } + ex sbtrct = -bigsum + a[0] + a[1]; + if (pow(bigsum,2).expand().subs(a[0]==sbtrct).expand() != pow(a[1],2)) + ++result; } exit(result); -- 2.44.0