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 class SymmSCMatrixSCExtrapData: public SCExtrapData {
00035   private:
00036     RefSymmSCMatrix m;
00037   public:
00038     SymmSCMatrixSCExtrapData(StateIn&);
00039     SymmSCMatrixSCExtrapData(const RefSymmSCMatrix&);
00040 
00041     void save_data_state(StateOut&);
00042     
00043     SCExtrapData* copy();
00044     void zero();
00045     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00046 };
00047 
00048 class SymmSCMatrix2SCExtrapData: public SCExtrapData {
00049   private:
00050     RefSymmSCMatrix m1;
00051     RefSymmSCMatrix m2;
00052   public:
00053     SymmSCMatrix2SCExtrapData(StateIn&);
00054     SymmSCMatrix2SCExtrapData(const RefSymmSCMatrix&, const RefSymmSCMatrix&);
00055 
00056     void save_data_state(StateOut&);
00057     
00058     SCExtrapData* copy();
00059     void zero();
00060     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00061 };
00062 
00063 class SymmSCMatrix4SCExtrapData: public SCExtrapData {
00064   private:
00065     RefSymmSCMatrix m1;
00066     RefSymmSCMatrix m2;
00067     RefSymmSCMatrix m3;
00068     RefSymmSCMatrix m4;
00069   public:
00070     SymmSCMatrix4SCExtrapData(StateIn&);
00071     SymmSCMatrix4SCExtrapData(const RefSymmSCMatrix&, const RefSymmSCMatrix&,
00072                               const RefSymmSCMatrix&, const RefSymmSCMatrix&);
00073 
00074     void save_data_state(StateOut&);
00075     
00076     SCExtrapData* copy();
00077     void zero();
00078     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00079 };
00080 
00081 class SymmSCMatrixNSCExtrapData: public SCExtrapData {
00082   private:
00083     int n_;
00084     RefSymmSCMatrix *m;
00085   public:
00086     SymmSCMatrixNSCExtrapData(StateIn&);
00087     SymmSCMatrixNSCExtrapData(int n, RefSymmSCMatrix*);
00088 
00089     void save_data_state(StateOut&);
00090     
00091     SCExtrapData* copy();
00092     void zero();
00093     void accumulate_scaled(double, const Ref<SCExtrapData>&);
00094 };
00095 
00096 class SymmSCMatrixSCExtrapError: public SCExtrapError {
00097   private:
00098     RefSymmSCMatrix m;
00099   public:
00100     SymmSCMatrixSCExtrapError(StateIn&);
00101     SymmSCMatrixSCExtrapError(const RefSymmSCMatrix&);
00102 
00103     void save_data_state(StateOut&);
00104     
00105     double error();
00106     double scalar_product(const Ref<SCExtrapError>&);
00107 };
00108 
00109 #endif
00110 
00111 // Local Variables:
00112 // mode: c++
00113 // c-file-style: "CLJ"
00114 // End:

Generated at Thu Oct 4 18:08:47 2001 for MPQC 2.0.0 using the documentation package Doxygen 1.2.5.