GiNaCRA
0.6.4
|
00001 /* 00002 * GiNaCRA - GiNaC Real Algebra package 00003 * Copyright (C) 2010-2012 Ulrich Loup, Joachim Redies, Sebastian Junges 00004 * 00005 * This file is part of GiNaCRA. 00006 * 00007 * GiNaCRA is free software: you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation, either version 3 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * GiNaCRA is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with GiNaCRA. If not, see <http://www.gnu.org/licenses/>. 00019 * 00020 */ 00021 00022 00023 // #define GINACRA_INTERVALREPRESENTATION_DEBUG 00024 00035 #include "UnivariateRepresentation.h" 00036 00037 namespace GiNaC 00038 { 00039 // Call GiNaC macro (registrar.h) for completing the implementation into the basic type. 00040 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(UnivariateRepresentation, basic, print_func<print_context>( &UnivariateRepresentation::do_print )) 00041 00042 00043 // Con- and destructors // 00045 00047 // Selectors // 00049 00051 // Methods from basic // 00053 00054 // // * @todo 00055 // int UnivariateRepresentation::compare_same_type(const basic & other) const 00056 // { 00057 // UnivariateRepresentation o = static_cast<const UnivariateRepresentation &>(other); 00058 // // the following is correct since always l <= r 00059 // if(mInterval == o.mInterval) 00060 // return 0; 00061 // else if(mInterval <= o.mInterval) 00062 // return -1; 00063 // else if(mInterval >= o.mInterval) 00064 // return 1; 00065 // return 0; 00066 // // return this->compare(other); 00067 // } 00068 00069 // // * @todo 00070 // bool UnivariateRepresentation::is_equal_same_type(const basic & other) 00071 // { 00072 // UnivariateRepresentation o = static_cast<const UnivariateRepresentation &>(other); 00073 // return this->isEqual(o); 00074 // } 00075 00076 // void UnivariateRepresentation::do_print(const print_context & c, unsigned level) const 00077 // { 00078 // // print_context::s is a reference to an ostream 00079 // c.s << '{' << static_cast<UnivariatePolynomial>(mPolynomial) << ": " << mInterval << '}'; 00080 // } 00081 00082 // ex UnivariateRepresentation::eval(int level) const 00083 // { 00084 // // this->refine(); up to a certain bound ? 00085 // return this->hold(); 00086 // } 00087 00088 00089 // Operators // 00091 00092 // arithmetic operators 00093 00094 // relational operators 00095 00096 // assignment operators 00097 00098 // const UnivariateRepresentation& UnivariateRepresentation::operator=(const UnivariateRepresentation& o) 00099 // { 00100 // mInterval = o.mInterval; 00101 // mPolynomial = o.mPolynomial; 00102 // mSturmSequence = o.mSturmSequence; 00103 // mOrder = o.mOrder; 00104 // return *this; 00105 // } 00106 00107 00108 // Operations // 00110 00112 // Arithmetic Operations // 00114 00116 // Relational Operations // 00118 00120 // Static Methods // 00122 00123 } // namespace GiNaC 00124