vector.cpp 6.37 KB
// **************************************************************************
//
//    PARALUTION   www.paralution.com
//
//    Copyright (C) 2015  PARALUTION Labs UG (haftungsbeschränkt) & Co. KG
//                        Am Hasensprung 6, 76571 Gaggenau
//                        Handelsregister: Amtsgericht Mannheim, HRA 706051
//                        Vertreten durch:
//                        PARALUTION Labs Verwaltungs UG (haftungsbeschränkt)
//                        Am Hasensprung 6, 76571 Gaggenau
//                        Handelsregister: Amtsgericht Mannheim, HRB 721277
//                        Geschäftsführer: Dimitar Lukarski, Nico Trost
//
//    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 <http://www.gnu.org/licenses/>.
//
// **************************************************************************



// PARALUTION version 1.1.0 


#include "../utils/def.hpp"
#include "vector.hpp"
#include "local_vector.hpp"
#include "../utils/log.hpp"

#include <complex>

namespace paralution {

template <typename ValueType>
Vector<ValueType>::Vector() {

  LOG_DEBUG(this, "Vector::Vector()",
            "default constructor");

  this->object_name_ = "";

}

template <typename ValueType>
Vector<ValueType>::~Vector() {

  LOG_DEBUG(this, "Vector::~Vector()",
            "default destructor");

}

template <typename ValueType>
void Vector<ValueType>::CopyFrom(const LocalVector<ValueType> &src) {

  LOG_INFO("Vector<ValueType>::CopyFrom(const LocalVector<ValueType> &src)");
  LOG_INFO("Mismatched types:");
  this->info();
  src.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::CopyFromAsync(const LocalVector<ValueType> &src) {

  LOG_INFO("Vector<ValueType>::CopyFromAsync(const LocalVector<ValueType> &src)");
  LOG_INFO("Mismatched types:");
  this->info();
  src.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::CopyFromFloat(const LocalVector<float> &src) {

  LOG_INFO("Vector<ValueType>::CopyFromFloat(const LocalVector<float> &src)");
  LOG_INFO("Mismatched types:");
  this->info();
  src.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::CopyFromDouble(const LocalVector<double> &src) {

  LOG_INFO("Vector<ValueType>::CopyFromDouble(const LocalVector<double> &src)");
  LOG_INFO("Mismatched types:");
  this->info();
  src.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::CloneFrom(const LocalVector<ValueType> &src) {

  LOG_INFO("Vector<ValueType>::CloneFrom(const LocalVector<ValueType> &src)");
  LOG_INFO("Mismatched types:");
  this->info();
  src.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::AddScale(const LocalVector<ValueType> &x, const ValueType alpha) {

  LOG_INFO("Vector<ValueType>::AddScale(const LocalVector<ValueType> &x, const ValueType alpha)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::ScaleAdd(const ValueType alpha, const LocalVector<ValueType> &x) {

  LOG_INFO("Vector<ValueType>::ScaleAdd(const ValueType alpha, const LocalVector<ValueType> &x)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
ValueType Vector<ValueType>::Dot(const LocalVector<ValueType> &x) const {

  LOG_INFO("Vector<ValueType>::Dot(const LocalVector<ValueType> &x) const");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
ValueType Vector<ValueType>::DotNonConj(const LocalVector<ValueType> &x) const {

  LOG_INFO("Vector<ValueType>::DotNonConj(const LocalVector<ValueType> &x) const");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::PointWiseMult(const LocalVector<ValueType> &x) {

  LOG_INFO("Vector<ValueType>::PointWiseMult(const LocalVector<ValueType> &x)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::PointWiseMult(const LocalVector<ValueType> &x, const LocalVector<ValueType> &y) {

  LOG_INFO("Vector<ValueType>::PointWiseMult(const LocalVector<ValueType> &x, const LocalVector<ValueType> &y)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  y.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::ScaleAddScale(const ValueType alpha, const LocalVector<ValueType> &x, const ValueType beta) {

  LOG_INFO("ScaleAddScale(const ValueType alpha, const LocalVector<ValueType> &x, const ValueType beta)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::ScaleAdd2(const ValueType alpha, const LocalVector<ValueType> &x, const ValueType beta, const LocalVector<ValueType> &y, const ValueType gamma) {

  LOG_INFO("ScaleAdd2(const ValueType alpha, const LocalVector<ValueType> &x, const ValueType beta, const LocalVector<ValueType> &y, const ValueType gamma)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  y.info();
  FATAL_ERROR(__FILE__, __LINE__);

}

template <typename ValueType>
void Vector<ValueType>::ExclusiveScan(const LocalVector<ValueType> &x) {

  LOG_INFO("ExclusiveScan(const LocalVector<ValueType> &x)");
  LOG_INFO("Mismatched types:");
  this->info();
  x.info();
  FATAL_ERROR(__FILE__, __LINE__);

}


template class Vector<double>;
template class Vector<float>;
#ifdef SUPPORT_COMPLEX
template class Vector<std::complex<double> >;
template class Vector<std::complex<float> >;
#endif

template class Vector<int>;

}