![]()
|
scextrapmat.h00001 //
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. |