/* LA: linear algebra C++ interface library Copyright (C) 2008 Jiri Pittner or This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #include #include #include #include #include "csrmat.h" namespace LA { /* Commented out by Roman for ICC #define INSTANTIZE(T) \ template void CSRMat::gemm(const T beta, const CSRMat &a, const char transa, const CSRMat &b, const char transb, const T alpha); \ template CSRMat & CSRMat::operator*=(const T &a); \ template void CSRMat::gemv(const T beta, NRVec &r, const char trans, const T alpha, const NRVec &x) const; \ template void CSRMat::axpy(const T alpha, const CSRMat &x, const bool transp); \ template CSRMat & CSRMat::operator=(const T &a); \ template CSRMat & CSRMat::operator+=(const T &a); \ template CSRMat & CSRMat::operator-=(const T &a); \ template LA_traits::normtype CSRMat::norm(const T scalar) const; \ template const T* CSRMat::diagonalof(NRVec &r, const bool divide, bool cache) const; \ template void CSRMat::get(int fd, bool dimen, bool transp); \ template void CSRMat::put(int fd, bool dimen, bool transp) const; \ INSTANTIZE(double) INSTANTIZE(std::complex) */ //// forced instantization of functions in the header in the corresponding object file //@@@@@template class CSRMat; //@@@@template class CSRMat >; //@@@@ unfinished class commented out }//namespace