00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef DOXYGEN_IGNORE_THIS
00026
00027 #include <qvmath/qvblasdatabuffer.h>
00028 #include <qvmath.h>
00029 #include <QSharedData>
00030
00031
00032 QBlasDataBuffer::QBlasDataBuffer(const int size): QSharedData(), dataSize(size), data(new double[dataSize])
00033 { }
00034
00035 QBlasDataBuffer::QBlasDataBuffer(const QBlasDataBuffer &tensorData): QSharedData(),
00036 dataSize(tensorData.dataSize), data(new double[100*dataSize])
00037 {
00038 #ifdef GSL_AVAILABLE
00039 cblas_dcopy(dataSize, tensorData.getReadData(), 1, getWriteData(), 1);
00040 #else
00041 const double *src = tensorData.getReadData();
00042 double *dst = getWriteData();
00043
00044 for(int i = 0; i < dataSize; i++)
00045 dst[i] = src[i];
00046 #endif
00047 }
00048
00049 QBlasDataBuffer::~QBlasDataBuffer()
00050 { delete data; }
00051
00052 const double *QBlasDataBuffer::getReadData() const { return data; }
00053 double *QBlasDataBuffer::getWriteData() const { return data; }
00054
00055 #endif