Fix fftshift bug
This commit is contained in:
@@ -862,13 +862,13 @@ void Aurora::fftshift(Matrix &aMatrix){
|
||||
int backwardLength = aMatrix.getDimSize(0)/2;
|
||||
if (aMatrix.getDimSize(0)%2!=0)++backwardLength;
|
||||
int forwardLength = aMatrix.getDimSize(0) - backwardLength;
|
||||
float* buffer = malloc(forwardLength,true);
|
||||
float* buffer = malloc(backwardLength,true);
|
||||
int valueStep = aMatrix.isComplex()?2:1;
|
||||
for (int i = 0; i<aMatrix.getDimSize(1); ++i) {
|
||||
float* dataPtr = aMatrix.getData()+aMatrix.getDimSize(0)*i*valueStep;
|
||||
cblas_scopy(forwardLength*valueStep, dataPtr+backwardLength*valueStep, 1, buffer, 1);
|
||||
cblas_scopy(backwardLength*valueStep, dataPtr, 1, dataPtr+forwardLength*valueStep, 1);
|
||||
cblas_scopy(forwardLength*valueStep, buffer, 1, dataPtr, 1);
|
||||
cblas_scopy(backwardLength*valueStep, dataPtr, 1, buffer, 1);
|
||||
cblas_scopy(forwardLength*valueStep, dataPtr+backwardLength*valueStep, 1, dataPtr, 1);
|
||||
cblas_scopy(backwardLength*valueStep, buffer, 1, dataPtr+forwardLength*valueStep, 1);
|
||||
}
|
||||
Aurora::free(buffer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user