Xmipp  v3.23.11-Nereus
Functions | Variables
xmipp_fftw.cpp File Reference
#include "xmipp_fftw.h"
#include "args.h"
#include "transformations.h"
#include <string.h>
#include <pthread.h>
Include dependency graph for xmipp_fftw.cpp:

Go to the source code of this file.

Functions

void FFT_magnitude (const MultidimArray< std::complex< double > > &v, MultidimArray< double > &mag)
 
void FFT_phase (const MultidimArray< std::complex< double > > &v, MultidimArray< double > &phase)
 
void radial_magnitude (const MultidimArray< double > &v, MultidimArray< std::complex< double > > &V, MultidimArray< double > &radialMagnitude)
 
void convolutionFFTStack (const MultidimArray< double > &img, const MultidimArray< double > &kernel, MultidimArray< double > &result)
 
void convolutionFFT (MultidimArray< double > &img, MultidimArray< double > &kernel, MultidimArray< double > &result)
 
void frc_dpr (MultidimArray< double > &m1, MultidimArray< double > &m2, double sampling_rate, MultidimArray< double > &freq, MultidimArray< double > &frc, MultidimArray< double > &frc_noise, MultidimArray< double > &dpr, MultidimArray< double > &error_l2, bool dodpr, bool doRfactor, double minFreq, double maxFreq, double *rFactor)
 
void scaleToSizeFourier (int Zdim, int Ydim, int Xdim, MultidimArray< double > &mdaIn, MultidimArray< double > &mdaOut, int nThreads)
 
template void scaleToSizeFourier< double > (MultidimArray< double > &mdaIn, MultidimArray< double > &mdaOut, MultidimArray< std::complex< double > > &inFourier, MultidimArray< std::complex< double > > &outFourier)
 
template<typename T >
void scaleToSizeFourier (MultidimArray< T > &mdaIn, MultidimArray< T > &mdaOut, MultidimArray< std::complex< T > > &inFourier, MultidimArray< std::complex< T > > &outFourier)
 
void selfScaleToSizeFourier (int Zdim, int Ydim, int Xdim, MultidimArray< double > &mda, int nThreads)
 
void selfScaleToSizeFourier (int Ydim, int Xdim, MultidimArray< double > &Mpmem, int nThreads)
 
void selfScaleToSizeFourier (int Zdim, int Ydim, int Xdim, MultidimArrayGeneric &Mpmem, int nThreads)
 
void selfScaleToSizeFourier (int Ydim, int Xdim, MultidimArrayGeneric &Mpmem, int nThreads)
 
void getSpectrum (MultidimArray< double > &Min, MultidimArray< double > &spectrum, int spectrum_type)
 
void divideBySpectrum (MultidimArray< double > &Min, MultidimArray< double > &spectrum, bool leave_origin_intact)
 
void multiplyBySpectrum (MultidimArray< double > &Min, MultidimArray< double > &spectrum, bool leave_origin_intact)
 
void whitenSpectrum (MultidimArray< double > &Min, MultidimArray< double > &Mout, int spectrum_type, bool leave_origin_intact)
 
void adaptSpectrum (MultidimArray< double > &Min, MultidimArray< double > &Mout, const MultidimArray< double > &spectrum_ref, int spectrum_type, bool leave_origin_intact)
 
void correlation_matrix (const MultidimArray< double > &m1, const MultidimArray< double > &m2, MultidimArray< double > &R, CorrelationAux &aux, bool center)
 
void correlationInFourier (const MultidimArray< std::complex< double > > &FF1, MultidimArray< std::complex< double > > &FF2, double dSize)
 
void correlation_matrix (const MultidimArray< std::complex< double > > &FF1, const MultidimArray< double > &m2, MultidimArray< double > &R, CorrelationAux &aux, bool center)
 
void correlation_matrix (const MultidimArray< std::complex< double > > &FFT1, const MultidimArray< std::complex< double > > &FFT2, MultidimArray< double > &R, CorrelationAux &aux, bool center)
 
void fast_correlation_vector (const MultidimArray< std::complex< double > > &FFT1, const MultidimArray< std::complex< double > > &FFT2, MultidimArray< double > &R, FourierTransformer &transformer)
 
void auto_correlation_matrix (const MultidimArray< double > &Img, MultidimArray< double > &R, CorrelationAux &aux)
 
void randomizePhases (MultidimArray< double > &Min, double wRandom)
 

Variables

bool planCreated =false
 
int nInstances =0
 

Function Documentation

◆ correlationInFourier()

void correlationInFourier ( const MultidimArray< std::complex< double > > &  FF1,
MultidimArray< std::complex< double > > &  FF2,
double  dSize 
)

Definition at line 879 of file xmipp_fftw.cpp.

880 {
881  // Multiply FFT1 * FFT2'
882  double mdSize=-dSize;
883  double a, b, c, d; // a+bi, c+di
884  double *ptrFFT2=(double*)MULTIDIM_ARRAY(FF2);
885  double *ptrFFT1=(double*)MULTIDIM_ARRAY(FF1);
887  {
888  a=*ptrFFT1++;
889  b=*ptrFFT1++;
890  c=(*ptrFFT2)*dSize;
891  d=(*(ptrFFT2+1))*mdSize;
892  *ptrFFT2++ = a*c-b*d;
893  *ptrFFT2++ = b*c+a*d;
894  }
895 }
doublereal * c
#define MULTIDIM_ARRAY(v)
doublereal * d
doublereal * b
#define FOR_ALL_DIRECT_ELEMENTS_IN_MULTIDIMARRAY(v)
doublereal * a

◆ scaleToSizeFourier< double >()

template void scaleToSizeFourier< double > ( MultidimArray< double > &  mdaIn,
MultidimArray< double > &  mdaOut,
MultidimArray< std::complex< double > > &  inFourier,
MultidimArray< std::complex< double > > &  outFourier 
)

Variable Documentation

◆ nInstances

int nInstances =0

Definition at line 35 of file xmipp_fftw.cpp.

◆ planCreated

bool planCreated =false

Definition at line 34 of file xmipp_fftw.cpp.