speed up repmat.

This commit is contained in:
sunwen
2023-06-08 13:34:45 +08:00
parent 5b1da21a31
commit d6bb2dcbbf

View File

@@ -377,18 +377,23 @@ Matrix Aurora::repmat(const Matrix& aMatrix,int aRowTimes, int aColumnTimes)
int column = aMatrix.getDimSize(1);
double* originalData = aMatrix.getData();
double* resultDataTemp = resultData;
size_t step = row*complexStep;
#pragma omp parallel for
for(int i=0; i<column; ++i)
{
for(int j=1; j<=aRowTimes; ++j)
double* origninalStart = originalData + i * step;
for(int j=0; j<aRowTimes; ++j)
{
cblas_dcopy(row*complexStep,originalData, 1, resultDataTemp, 1);
resultDataTemp += row*complexStep;
double* copyStart = resultData + step * (i*aRowTimes + j);
cblas_dcopy(step, origninalStart, 1, copyStart, 1);
//resultDataTemp += row*complexStep;
}
originalData += row*complexStep;
//originalData += step;
}
resultDataTemp = resultData;
int step = originalDataSize * aRowTimes;
step = originalDataSize * aRowTimes;
#pragma omp parallel for
for(int i=1; i<aColumnTimes; ++i)
{
cblas_dcopy(step, resultData, 1, resultData + i*step, 1);