// // $Source: /cvsroot/gambit/gambit/sources/tools/enumpoly/gsolver.h,v $ // $Date: 2006/08/17 03:05:00 $ // $Revision: 1.5 $ // // DESCRIPTION: // Declaration of gSolver // // This file is part of Gambit // Copyright (c) 2002, The Gambit Project // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // #ifndef GSOLVER_H #define GSOLVER_H #include "ideal.h" #include "linrcomb.h" #include "gpolylst.h" template class gSolver { private: const gPolyList& InputList; const gIdeal TheIdeal; // Conversion Gambit::List > BasisTogDouble() const; // Recursive Call in Solver Gambit::List > ContinuationSolutions(const Gambit::List >& list, const int dmnsn, const int curvar, const Gambit::Vector& knownvals); public: // Constructor and Destructor gSolver(const term_order* Order,const gPolyList& Inputs); gSolver(const gSolver&); ~gSolver(); bool IsZeroDimensional(); Gambit::List > Roots(); }; #endif // GSOLVER_H