Sacado_PCE_TripleProduct.hpp

Go to the documentation of this file.
00001 // $Id: Sacado_PCE_TripleProduct.hpp,v 1.1 2007/11/14 00:18:19 etphipp Exp $ 
00002 // $Source: /space/CVS/Trilinos/packages/sacado/src/pce/Sacado_PCE_TripleProduct.hpp,v $ 
00003 // @HEADER
00004 // ***********************************************************************
00005 // 
00006 //                           Sacado Package
00007 //                 Copyright (2006) Sandia Corporation
00008 // 
00009 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 // license for use of this work by or on behalf of the U.S. Government.
00011 // 
00012 // This library is free software; you can redistribute it and/or modify
00013 // it under the terms of the GNU Lesser General Public License as
00014 // published by the Free Software Foundation; either version 2.1 of the
00015 // License, or (at your option) any later version.
00016 //  
00017 // This library is distributed in the hope that it will be useful, but
00018 // WITHOUT ANY WARRANTY; without even the implied warranty of
00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 // Lesser General Public License for more details.
00021 //  
00022 // You should have received a copy of the GNU Lesser General Public
00023 // License along with this library; if not, write to the Free Software
00024 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 // USA
00026 // Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
00027 // (etphipp@sandia.gov).
00028 // 
00029 // ***********************************************************************
00030 // @HEADER
00031 
00032 #ifndef SACADO_PCE_TRIPLEPRODUCT_HPP
00033 #define SACADO_PCE_TRIPLEPRODUCT_HPP
00034 
00035 #include <vector>
00036 
00037 namespace Sacado {
00038 
00039   namespace PCE {
00040 
00042     template <typename BasisT>
00043     class TripleProduct {
00044     public:
00045 
00046       typedef BasisT basis_type;
00047 
00048       typedef typename BasisT::value_type value_type;
00049 
00051       TripleProduct(unsigned int degree);
00052 
00054       TripleProduct(const TripleProduct& tp);
00055       
00057       ~TripleProduct();
00058 
00060       TripleProduct& operator=(const TripleProduct& tp);
00061       
00063       const value_type& value(unsigned int i, unsigned int j, 
00064             unsigned int k) const;
00065       
00067       const value_type& norm_squared(unsigned int i) const;
00068 
00070       unsigned int size() const { return l; }
00071 
00073       const BasisT& getBasis() const { return basis; }
00074 
00076       void resize(unsigned int degree);
00077 
00078     protected:
00079 
00081       void compute();
00082       
00083     protected:
00084 
00086       unsigned int l;
00087 
00089       BasisT basis;
00090 
00092       std::vector<value_type> Cijk;
00093 
00094     }; // class Triple Product
00095 
00096   } // namespace PCE
00097 
00098 } // namespace Sacado
00099 
00100 // Include template definitions
00101 #include "Sacado_PCE_TripleProductImp.hpp"
00102 
00103 #endif // SACADO_PCE_TRIPLEPRODUCT_HPP

Generated on Wed May 12 21:59:04 2010 for Sacado Package Browser (Single Doxygen Collection) by  doxygen 1.4.7