Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

scextrapmat.h

00001 //
00002 // scextrapmat.h
00003 //
00004 // Copyright (C) 1996 Limit Point Systems, Inc.
00005 //
00006 // Author: Curtis Janssen <cljanss@limitpt.com>
00007 // Maintainer: LPS
00008 //
00009 // This file is part of the SC Toolkit.
00010 //
00011 // The SC Toolkit is free software; you can redistribute it and/or modify
00012 // it under the terms of the GNU Library General Public License as published by
00013 // the Free Software Foundation; either version 2, or (at your option)
00014 // any later version.
00015 //
00016 // The SC Toolkit is distributed in the hope that it will be useful,
00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019 // GNU Library General Public License for more details.
00020 //
00021 // You should have received a copy of the GNU Library General Public License
00022 // along with the SC Toolkit; see the file COPYING.LIB.  If not, write to
00023 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
00024 //
00025 // The U.S. Government is granted a limited license as per AL 91-7.
00026 //
00027 
00028 #ifndef _math_optimize_scextrapmat_h
00029 #define _math_optimize_scextrapmat_h
00030 
00031 #include <math/optimize/scextrap.h>
00032 #include <math/scmat/matrix.h>
00033 
00034 namespace sc {
00035 
00036 class SymmSCMatrixSCExtrapData: public SCExtrapData {
00037   private:
00038     RefSymmSCMatrix m;
00039   public:
00040     SymmSCMatrixSCExtrapData(StateIn&);
00041     SymmSCMatrixSCExtrapData(const RefSymmSCMatrix&);
00042 
00043     void save_data_state(StateOut&);
00044     
00045     SCExtrapData* copy();
00046     void zero();
00047     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00048 };
00049 
00050 class SymmSCMatrix2SCExtrapData: public SCExtrapData {
00051   private:
00052     RefSymmSCMatrix m1;
00053     RefSymmSCMatrix m2;
00054   public:
00055     SymmSCMatrix2SCExtrapData(StateIn&);
00056     SymmSCMatrix2SCExtrapData(const RefSymmSCMatrix&, const RefSymmSCMatrix&);
00057 
00058     void save_data_state(StateOut&);
00059     
00060     SCExtrapData* copy();
00061     void zero();
00062     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00063 };
00064 
00065 class SymmSCMatrix4SCExtrapData: public SCExtrapData {
00066   private:
00067     RefSymmSCMatrix m1;
00068     RefSymmSCMatrix m2;
00069     RefSymmSCMatrix m3;
00070     RefSymmSCMatrix m4;
00071   public:
00072     SymmSCMatrix4SCExtrapData(StateIn&);
00073     SymmSCMatrix4SCExtrapData(const RefSymmSCMatrix&, const RefSymmSCMatrix&,
00074                               const RefSymmSCMatrix&, const RefSymmSCMatrix&);
00075 
00076     void save_data_state(StateOut&);
00077     
00078     SCExtrapData* copy();
00079     void zero();
00080     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00081 };
00082 
00083 class SymmSCMatrixNSCExtrapData: public SCExtrapData {
00084   private:
00085     int n_;
00086     RefSymmSCMatrix *m;
00087   public:
00088     SymmSCMatrixNSCExtrapData(StateIn&);
00089     SymmSCMatrixNSCExtrapData(int n, RefSymmSCMatrix*);
00090 
00091     void save_data_state(StateOut&);
00092     
00093     SCExtrapData* copy();
00094     void zero();
00095     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00096 };
00097 
00098 class SymmSCMatrixSCExtrapError: public SCExtrapError {
00099   private:
00100     RefSymmSCMatrix m;
00101   public:
00102     SymmSCMatrixSCExtrapError(StateIn&);
00103     SymmSCMatrixSCExtrapError(const RefSymmSCMatrix&);
00104 
00105     void save_data_state(StateOut&);
00106     
00107     double error();
00108     double scalar_product(const Ref<SCExtrapError>&);
00109 };
00110 
00111 }
00112 
00113 #endif
00114 
00115 // Local Variables:
00116 // mode: c++
00117 // c-file-style: "CLJ"
00118 // End:

Generated at Fri Jan 10 08:14:09 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14.