CoCoALib-0.9905 date: 23 May 2007


MatrixArith.H

Go to the documentation of this file.
00001 #ifndef CoCoA_MatrixArith_H
00002 #define CoCoA_MatrixArith_H
00003 
00004 //   Copyright (c)  2005  John Abbott
00005 
00006 //   This file is part of the source of CoCoALib, the CoCoA Library.
00007 
00008 //   CoCoALib is free software; you can redistribute it and/or modify
00009 //   it under the terms of the GNU General Public License (version 2)
00010 //   as published by the Free Software Foundation.  A copy of the full
00011 //   licence may be found in the file COPYING in this directory.
00012 
00013 //   CoCoALib is distributed in the hope that it will be useful,
00014 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 //   GNU General Public License for more details.
00017 
00018 //   You should have received a copy of the GNU General Public License
00019 //   along with CoCoA; if not, write to the Free Software
00020 //   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021 
00022 
00023 #include <cstddef>
00024 //using std::size_t;
00025 #include <vector>
00026 // using std::vector
00027 
00028 namespace CoCoA
00029 {
00030 
00031   class ConstMatrix; // forward declaration -- defined in matrix.H
00032   class RefRingElem; // forward declaration -- defined in ring.H
00033   class matrix;      // forward declaration -- defined in matrix.H
00034   class ring;        // forward declaration -- defined in ring.H
00035 
00036   void DetByGauss(RefRingElem d, ConstMatrix M);
00037   size_t RankByGauss(ConstMatrix M);
00038   void InverseByGauss(matrix& lhs, ConstMatrix M);
00039 //??? doesn't exist???  void AdjointByGauss(matrix& lhs, ConstMatrix M);
00040   void AdjointByInverse(matrix& lhs, ConstMatrix M);
00041 
00042   void GrammSchmidtRows(matrix& M);
00043   void GrammSchmidtRows(matrix& M, std::size_t row);
00044 
00045 /**
00046     expects a matrix with entries in an ordered ring
00047 */
00048   bool IsTermOrdering(ConstMatrix M);
00049   matrix NewPositiveMatrix(ConstMatrix M); ///< returns a matrix with positive entries which defines an equivalent term-ordering
00050   bool IsPositiveGrading(ConstMatrix M, size_t GradingDim);  ///< are the first GradingDim rows of M a positive grading?
00051 
00052 //   matrix NewBlockMatrix(ConstMatrix M11, ConstMatrix M12, ConstMatrix M21, ConstMatrix M22);
00053   matrix NewMatrixConcatHor(ConstMatrix M1, ConstMatrix M2);
00054   matrix NewMatrixConcatVer(ConstMatrix M1, ConstMatrix M2);
00055   matrix NewMatrixConcatDiag(ConstMatrix M1, ConstMatrix M2);
00056   matrix NewMatrixConcatAntiDiag(ConstMatrix M1, ConstMatrix M2);
00057   matrix NewMatrixMinimize(ConstMatrix M);///< the (ordering) matrix obtained by removing linearly dependent rows
00058   matrix NewDenseMatrixRevLex(ring R, size_t n);
00059   matrix NewMatrixCompleteOrd(ConstMatrix M);
00060   matrix NewMatrixElim(size_t NumIndets, std::vector<size_t> IndetsToElim);
00061   matrix NewMatrixElim(ConstMatrix GradingM, std::vector<size_t> IndetsToElim, bool IsHomog);
00062 } // end of namespace CoCoA
00063 
00064 
00065 
00066 // RCS header/log in the next few lines
00067 // $Header: /Volumes/Home/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/MatrixArith.H,v 1.1.1.1 2007/03/09 15:16:11 abbott Exp $
00068 // $Log: MatrixArith.H,v $
00069 // Revision 1.1.1.1  2007/03/09 15:16:11  abbott
00070 // Imported files
00071 //
00072 // Revision 1.8  2007/03/08 18:42:06  cocoa
00073 // Cleaned up whitespace.
00074 //
00075 // Revision 1.7  2007/03/07 13:07:10  cocoa
00076 // -- minor: added comment for NewMatrixMinimize
00077 //
00078 // Revision 1.6  2006/12/06 17:14:12  cocoa
00079 // -- removed #include "config.H"
00080 //
00081 // Revision 1.5  2006/11/24 17:27:46  cocoa
00082 // -- reorganized includes of header files
00083 //
00084 // Revision 1.4  2006/10/06 14:04:15  cocoa
00085 // Corrected position of #ifndef in header files.
00086 // Separated CoCoA_ASSERT into assert.H from config.H;
00087 // many minor consequential changes (have to #include assert.H).
00088 // A little tidying of #include directives (esp. in Max's code).
00089 //
00090 // Revision 1.3  2006/08/17 09:39:08  cocoa
00091 // -- added: elimination ordering matrix for non-homogeneous input
00092 //
00093 // Revision 1.2  2006/07/17 16:58:05  cocoa
00094 // -- added: NewMatrixElim(size_t NumIndets, std::vector<size_t> IndetsToElim)
00095 //
00096 // Revision 1.1.1.1  2006/05/30 11:39:37  cocoa
00097 // Imported files
00098 //
00099 // Revision 1.4  2006/04/10 13:20:43  cocoa
00100 // -- fixed buglets for Elimination orderings
00101 //
00102 // Revision 1.3  2006/04/05 17:18:33  cocoa
00103 // -- added IsPositiveGrading
00104 //
00105 // Revision 1.2  2006/03/27 12:21:26  cocoa
00106 // Minor silly changes to reduce number of complaints from some compiler or other.
00107 //
00108 // Revision 1.1.1.1  2005/10/17 10:46:54  cocoa
00109 // Imported files
00110 //
00111 // Revision 1.1.1.1  2005/05/03 15:47:30  cocoa
00112 // Imported files
00113 //
00114 // Revision 1.4  2005/04/19 15:39:55  cocoa
00115 // Matrices now use reference counts.
00116 //
00117 // Revision 1.3  2005/04/19 14:06:04  cocoa
00118 // Added GPL and GFDL licence stuff.
00119 //
00120 // Revision 1.2  2005/03/30 17:15:14  cocoa
00121 // Cleaned the SpecialMatrix code; a simple test compiles and
00122 // runs fine.
00123 //
00124 // Revision 1.1  2005/03/11 18:40:54  cocoa
00125 // -- first import
00126 //
00127 
00128 #endif

Generated on Wed May 23 13:43:35 2007 for CoCoALib by  doxygen 1.4.6