/* Example programs from the book Scientific and Engineering Programming in C++: An Introduction with Advanced Techniques and Examples, Addison-Wesley, 1994. (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ALL RIGHTS RESERVED. See README file for further details. */ #ifndef NonNegativeH #define NonNegativeH #include "Algebra/SubDomain.h" #include "Algebra/Positive.h" template class NonNegativePredicate { public: static Boolean isSatisfied(const T& x) { return x >= 0; } static String description() { return "is not non-negative"; } }; template class NonNegative : public SubDomain > { public: NonNegative(const T& x) : SubDomain >(x) {} NonNegative(const Positive& x) : SubDomain >(x) {} }; #endif