#include "Prob.h" #include "LargeReal.h" #include #include #include #undef assert #undef __assert #define assert(expression) \ ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__))) #define __assert(expression, file, line) \ (fprintf (stderr, "%s:%u: failed assertion `%s'\n", \ file, line, expression), 0) #define CLASS Prob #define BASE ProbBase #define BASENAME "ProbBase" #define REG #define PROB #define fname(x) x ## Prob #define CNAME "Prob" #define DCAST (from_double) #include "TestProb.h" #undef CLASS #undef fname #undef CNAME #undef BASE #undef BASENAME #undef REG #define REG register #define CLASS Prob #define BASE ProbBase #define BASENAME "ProbBase" #define PROB #define fname(x) x ## RegProb #define CNAME "register Prob" #define DCAST (from_double) #include "TestProb.h" #undef CLASS #undef fname #undef CNAME #undef BASE #undef BASENAME #undef REG #define REG #define CLASS ShortProb #define CNAME "ShortProb" #define BASE ShortProbBase #define BASENAME "ShortProbBase" #define fname(x) x ## ShortProb #include "TestProb.h" #undef CLASS #undef fname #undef BASE #undef BASENAME #undef CNAME #undef PROB #undef DCAST #define REAL #define CLASS LargeReal #define CNAME "LargeReal" #define DCAST #define fname(x) x ## LargeReal #include "TestProb.h" #undef CLASS #undef fname #undef CNAME #define REAL #undef REG #define REG register #define CLASS LargeReal #define CNAME "register LargeReal" #define DCAST #define fname(x) x ## RegLargeReal #include "TestProb.h" #undef CLASS #undef fname #undef CNAME #undef REG #define REG #define CLASS ShortLargeReal #define CNAME "ShortLargeReal" #define fname(x) x ## ShortLargeReal #include "TestProb.h" #undef CLASS #undef fname #undef CNAME int main(void) { BasicsProb(); MathProb(); PrintSmallProb(); BasicsRegProb(); MathRegProb(); PrintSmallRegProb(); BasicsShortProb(); MathShortProb(); PrintSmallShortProb(); BasicsLargeReal(); MathLargeReal(); PrintSmallLargeReal(); BasicsRegLargeReal(); MathRegLargeReal(); PrintSmallRegLargeReal(); BasicsShortLargeReal(); MathShortLargeReal(); PrintSmallShortLargeReal(); }