CoCoALib-0.9905 date: 23 May 2007


SpecialMatrix.H

Go to the documentation of this file.
00001 #ifndef CoCoA_SpecialMatrix_H
00002 #define CoCoA_SpecialMatrix_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 
00029 namespace CoCoA
00030 {
00031 
00032   class ConstMatrix;  // forward declaration -- defined in matrix.H
00033   class ring;         // forward declaration -- defined in ring.H
00034 
00035   /*-----------------------------------------------------------------*/
00036   /** \include SpecialMatrix.txt  */
00037   /*-----------------------------------------------------------------*/
00038 
00039   ConstMatrix NewZeroMatrix(const ring& R, std::size_t NumRows, std::size_t NumCols); ///< Public fn to create a zero matrix
00040   ConstMatrix NewIdentityMatrix(const ring& R, std::size_t dim);
00041   ConstMatrix NewTransposeMatrix(ConstMatrix M);
00042   ConstMatrix NewSubmatrix(ConstMatrix M, const std::vector<std::size_t>& rows, const std::vector<std::size_t>& cols);
00043   /***************************************************************************/
00044   // BlockMatrixImpl -- block matrices  ( A  B )
00045   //                                    ( C  D )
00046   ConstMatrix NewBlockMatrix(ConstMatrix A, ConstMatrix B, ConstMatrix C, ConstMatrix D);
00047 
00048 } // end of namespace CoCoA
00049 
00050 
00051 
00052 // RCS header/log in the next few lines
00053 // $Header: /Volumes/Home/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/SpecialMatrix.H,v 1.1.1.1 2007/03/09 15:16:11 abbott Exp $
00054 // $Log: SpecialMatrix.H,v $
00055 // Revision 1.1.1.1  2007/03/09 15:16:11  abbott
00056 // Imported files
00057 //
00058 // Revision 1.3  2006/11/27 16:18:33  cocoa
00059 // -- moved classes declarations from .H to .C (DenseMatrix, DiagMatrix,
00060 //    FieldIdeal, SpecialMatrix)
00061 //
00062 // Revision 1.2  2006/10/06 14:04:15  cocoa
00063 // Corrected position of #ifndef in header files.
00064 // Separated CoCoA_ASSERT into assert.H from config.H;
00065 // many minor consequential changes (have to #include assert.H).
00066 // A little tidying of #include directives (esp. in Max's code).
00067 //
00068 // Revision 1.1.1.1  2006/05/30 11:39:37  cocoa
00069 // Imported files
00070 //
00071 // Revision 1.1.1.1  2005/10/17 10:46:54  cocoa
00072 // Imported files
00073 //
00074 // Revision 1.1.1.1  2005/05/03 15:47:31  cocoa
00075 // Imported files
00076 //
00077 // Revision 1.7  2005/04/19 15:39:55  cocoa
00078 // Matrices now use reference counts.
00079 //
00080 // Revision 1.6  2005/04/19 14:06:04  cocoa
00081 // Added GPL and GFDL licence stuff.
00082 //
00083 // Revision 1.5  2005/03/31 16:59:42  cocoa
00084 // Made special matrix ctors private, so a user has to pass via the
00085 // pseudo-ctors (which do all the arg sanity checking).
00086 //
00087 // Revision 1.4  2005/03/30 17:15:14  cocoa
00088 // Cleaned the SpecialMatrix code; a simple test compiles and
00089 // runs fine.
00090 //
00091 
00092 #endif

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