/*---------------------------------------------------------------------------*
 *                                   IT++			             *
 *---------------------------------------------------------------------------*
 * Copyright (c) 1995-2004 by Tony Ottosson, Thomas Eriksson, Pål Frenger,   *
 * Tobias Ringström, and Jonas Samuelsson.                                   *
 *                                                                           *
 * Permission to use, copy, modify, and distribute this software and its     *
 * documentation under the terms of the GNU General Public License is hereby *
 * granted. No representations are made about the suitability of this        *
 * software for any purpose. It is provided "as is" without expressed or     *
 * implied warranty. See the GNU General Public License for more details.    *
 *---------------------------------------------------------------------------*/

/*! 
  \file 
  \brief Sparse Matrix Class implementation.
  \author Tony Ottosson and Tobias Ringström

  1.13

  2003/05/22 08:55:20
*/

#include "base/smat.h"

namespace itpp {
 

  /*--------------------------------------------------------------
   * Explicit initializations
   *--------------------------------------------------------------*/

  //! Template instantiation of Sparse_Mat<int>
  template class Sparse_Mat<int>;
  //! Template instantiation of Sparse_Mat<double>
  template class Sparse_Mat<double>;
// #ifdef _MSC_VER
// #pragma warning (disable: 4660)
// #endif
  //! Template instantiation of Sparse_Mat<complex<double> >
  template class Sparse_Mat<complex<double> >;
// #ifdef _MSC_VER
// #pragma warning( default:4660)
// #endif

  //! Template instantiation of operator+
  template sparse_imat operator+(const sparse_imat &, const sparse_imat &);
  //! Template instantiation of operator+
  template sparse_mat operator+(const sparse_mat &, const sparse_mat &);
  //! Template instantiation of operator+
  template sparse_cmat operator+(const sparse_cmat &, const sparse_cmat &);

  //! Template instantiation of operator*
  template sparse_imat operator*(const sparse_imat &, const sparse_imat &);
  //! Template instantiation of operator*
  template sparse_mat operator*(const sparse_mat &, const sparse_mat &);
  //! Template instantiation of operator*
  template sparse_cmat operator*(const sparse_cmat &, const sparse_cmat &);

  //! Template instantiation of operator*
  template ivec operator*(const ivec &, const sparse_imat &);
  //! Template instantiation of operator*
  template vec operator*(const vec &, const sparse_mat &);
  //! Template instantiation of operator*
  template cvec operator*(const cvec &, const sparse_cmat &);

  //! Template instantiation of operator*
  template ivec operator*(const sparse_imat &, const ivec &);
  //! Template instantiation of operator*
  template vec operator*(const sparse_mat &, const vec &);
  //! Template instantiation of operator*
  template cvec operator*(const sparse_cmat &, const cvec &);

  //! Template instantiation of trans_mult
  template imat trans_mult(const sparse_imat &);
  //! Template instantiation of trans_mult
  template mat trans_mult(const sparse_mat &);
  //! Template instantiation of trans_mult
  template cmat trans_mult(const sparse_cmat &);

  //! Template instantiation of trans_mult_s
  template sparse_imat trans_mult_s(const sparse_imat &);
  //! Template instantiation of trans_mult_s
  template sparse_mat trans_mult_s(const sparse_mat &);
  //! Template instantiation of trans_mult_s
  template sparse_cmat trans_mult_s(const sparse_cmat &);

  //! Template instantiation of trans_mult
  template sparse_imat trans_mult(const sparse_imat &, const sparse_imat &);
  //! Template instantiation of trans_mult
  template sparse_mat trans_mult(const sparse_mat &, const sparse_mat &);
  //! Template instantiation of trans_mult
  template sparse_cmat trans_mult(const sparse_cmat &, const sparse_cmat &);

  //! Template instantiation of trans_mult
  template ivec trans_mult(const sparse_imat &, const ivec &);
  //! Template instantiation of trans_mult
  template vec trans_mult(const sparse_mat &, const vec &);
  //! Template instantiation of trans_mult
  template cvec trans_mult(const sparse_cmat &, const cvec &);

  //! Template instantiation of mult_trans
  template sparse_imat mult_trans(const sparse_imat &, const sparse_imat &);
  //! Template instantiation of mult_trans
  template sparse_mat mult_trans(const sparse_mat &, const sparse_mat &);
  //! Template instantiation of mult_trans
  template sparse_cmat mult_trans(const sparse_cmat &, const sparse_cmat &);

} //namespace itpp


syntax highlighted by Code2HTML, v. 0.9.1