GiNaCRA  0.6.4
RealAlgebraicPoint.h
Go to the documentation of this file.
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 #ifndef GINACRA_REALALGEBRAICPOINT_H
00024 #define GINACRA_REALALGEBRAICPOINT_H
00025 
00026 #include <ginac/ginac.h>
00027 
00028 #include "utilities.h"
00029 #include "RealAlgebraicNumber.h"
00030 #include "RealAlgebraicNumberFactory.h"
00031 #include "Polynomial.h"
00032 
00033 using GiNaC::symbol_is_lesseq_lex;
00034 
00035 namespace GiNaCRA
00036 {
00046     class RealAlgebraicPoint:
00047         public vector<RealAlgebraicNumberPtr>
00048     {
00049         public:
00050 
00052             // Con- and destructors //
00054 
00058             RealAlgebraicPoint():
00059                 vector<RealAlgebraicNumberPtr>()
00060             {}
00061 
00066             RealAlgebraicPoint( const RealAlgebraicPoint& r ):
00067                 vector<RealAlgebraicNumberPtr>( r )
00068             {}
00069 
00074             RealAlgebraicPoint( size_t size ):
00075                 vector<RealAlgebraicNumberPtr>( size )
00076             {}
00077 
00082             RealAlgebraicPoint( const vector<RealAlgebraicNumberPtr>& v ):
00083                 vector<RealAlgebraicNumberPtr>( v )
00084             {}
00085 
00090             RealAlgebraicPoint( const list<RealAlgebraicNumberPtr>& v ):
00091                 vector<RealAlgebraicNumberPtr>( v.begin(), v.end() )
00092             {}
00093 
00095             // Operations //
00097 
00101             const unsigned dim() const;
00102 
00111             RealAlgebraicPoint conjoin( const RealAlgebraicNumberPtr& r );
00112 
00113     };
00114 
00115 }    // namespace GiNaC
00116 
00117 #endif