![]() |
University of Murcia, Spain ![]() |
src/qvmath/qvblasdatabuffer.hGo to the documentation of this file.00001 /* 00002 * Copyright (C) 2007, 2008, 2009. PARP Research Group. 00003 * <http://perception.inf.um.es> 00004 * University of Murcia, Spain. 00005 * 00006 * This file is part of the QVision library. 00007 * 00008 * QVision is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as 00010 * published by the Free Software Foundation, version 3 of the License. 00011 * 00012 * QVision is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with QVision. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00024 00025 #ifndef QVBLASDATABUFFER_H 00026 #define QVBLASDATABUFFER_H 00027 00028 #ifndef DOXYGEN_IGNORE_THIS 00029 #include <QSharedData> 00030 // This class could be perfectly substituted by a QVector<double>, but it is slower 00031 class QBlasDataBuffer: public QSharedData 00032 { 00033 public: 00034 QBlasDataBuffer(const int size): QSharedData(), dataSize(size), data(new double[dataSize]) 00035 { } 00036 00037 QBlasDataBuffer(const QBlasDataBuffer &tensorData): QSharedData(), 00038 dataSize(tensorData.dataSize), data(new double[100*dataSize]) 00039 { cblas_dcopy(dataSize, tensorData.getReadData(), 1, getWriteData(), 1); } 00040 00041 ~QBlasDataBuffer() 00042 { delete data; } 00043 00044 const double *getReadData() const { return data; } 00045 double *getWriteData() { return data; } 00046 00047 private: 00048 int dataSize; 00049 double *data; 00050 }; 00051 #endif 00052 #endif |