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