Class PseudoPolarFourierTransform
- java.lang.Object
-
- java.lang.Thread
-
- gov.nih.mipav.model.algorithms.AlgorithmBase
-
- gov.nih.mipav.model.algorithms.filters.PseudoPolarFourierTransform
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.event.WindowListener
,java.lang.Runnable
,java.util.EventListener
public class PseudoPolarFourierTransform extends AlgorithmBase
- Author:
- ilb This is a port of MATLAB code in the ppft2 download package by Yoel Shkolnisky. The Magic Square code used in testing is derived from the code in the article Magic Square by A. Riazi. The article states that the article has no explicit license attached to it. References: 1.) Pseudo-Polar and Discrete Radon Transforms Software Package Documentation by Yoel Shkolnisky February 19, 2003. 2.) DIRECT INVERSION OF THE THREE-DIMENSIONAL PSEUDO-POLAR FOURIER TRANSFORM AMIR AVERBUCH, GIL SHABAT, AND YOEL SHKOLNISKY SIAM J. SCI. COMPUT. 2016 Society for Industrial and Applied Mathematics Vol. 38, No. 2, pp. A1100-A1120 3.) A FRAMEWORK FOR DISCRETE INTEGRAL TRANSFORMATIONS I - THE PSEUDO-POLAR FOURIER TRANSFORM A. AVERBUCH, R.R. COIFMAN, D.L. DONOHO, M. ISRAELI, AND Y. SHKOLNISKY 4.) Y. Keller, Y. Shkolnisky, and A. Averbuch. Volume registration using the 3-D pseudo-polar Fourier transform. IEEE Transactions on Signal Processing, 54(11):4323-4331, 2006.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
PseudoPolarFourierTransform.indexValueComparator
private class
PseudoPolarFourierTransform.indexValueItem
-
Field Summary
Fields Modifier and Type Field Description private ViewUserInterface
UI
-
Fields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStopped
-
-
Constructor Summary
Constructors Constructor Description PseudoPolarFourierTransform()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double[][]
adjCfrft(double[][] x, double alpha)
private double[][]
adjE(double[][] v)
private double[][]
adjF(double[][] y)
private double[][]
adjGKN(double[][] w, int k)
private double[][]
adjInvF(double[][] v)
private double[][][]
adjPPFT(double[][][] pp1, double[][][] pp2)
private double[][]
adjRadon(double[][] r1, double[][] r2)
private double[][]
adjU(double[][] v)
private double[][][][]
applyppftfilter(double[][][][] X, double[][][][] filter)
private double[][]
cdft(double[] x)
private double[][]
cdft(double[][] x)
private double[][][]
cdft2(double[][] x)
private double[][][]
cdft2(double[][][] x)
private double[][][][]
cdft3(double[][][] x)
private double[][][][]
cdft3(double[][][][] x)
private double[][]
cfft(double[][] x)
private double[][][]
cfft2(double[][][] x)
private double[][][][]
cfft3(double[][][][] x)
private double[][]
cfrft(double[][] x, double alpha)
private double[][]
cfrftV2(double[][] x, double alpha)
private double[][][]
cfrftV3(double[][][] x, double alpha, double[][][] PQ, double[][][] PZ, int k)
private void
cfrftV3_precomp(double[][][] PQ, double[][][] PZ, int m, double[] alpha)
private void
CG(double[][][][] Y, int[] flag, double[] relres, int[] iter, double[] absres, boolean ref, double[][][][] X, double[][][][] filt, double ErrTol, int MaxIts, double[][][][] guess, boolean verbose, double[][][][] RefY)
private void
CG(double[][][] Y, int[] flag, double[] relres, int[] iter, double[] absres, double[][][] X, double ErrTol, int MaxIts, double[][][] guess, boolean verbose, double[][][] RefY)
private double[]
chebzeros(int n)
private int
checkInput(double[][][] pp1, double[][][] pp2)
private double[][]
ChirpZ(double[][] x, double[] A, double[] W, int M)
private void
compare(double[][] c1, double[][] c2)
private double[]
compC(int n, int j, int type)
private double[]
compD(int n, int j, int type)
private int[]
createArray(int lower, int upper)
private double[]
dirichlet(double[] t, int m)
private void
DoublyEvenMagicSquare(int[][] matrix, int n)
private void
equals(double[][][][][] v1, double[][][][][] v2, double eps, boolean[] ok, double[] error)
private void
equals(double[][][][] v1, double[][][][] v2, double eps, boolean[] ok, double[] error)
private double[][]
fastfmmresample(double[][] f, double[] yin, double[] xin, double[] dj, double[] cl, double EPS)
private double[][][]
fftshift(double[][][] in)
private double[][][][]
fftshift(double[][][][] in)
private double[][]
fftshift1d(double[][] x)
private void
fippft3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
private boolean
floateq(double[] x, double[] y)
private boolean
floateq(double x, double y)
private double[][][][]
FPtP(double[][][][] X, double[][][][] H)
private double[][]
frft(double[][] x, double alpha)
private java.lang.String
getppfiltname(int n)
private double[][]
GKN(double[][] x, int k)
private double[][]
GKN3(double[][] x, int k)
private int
hiIdx(int n)
private double
I1(double[][][] im, int n, double x, int v, int w)
private double
I1(double[][] im, int n, int u, double y)
private double
I2(double[][][] im, int n, int u, double y, int w)
private double
I2(double[][] im, int n, double x, int v)
private double
I3(double[][][] im, int n, int u, int v, double z)
private double[][]
icdft(double[][] x)
private double[][]
icfft(double[][] x)
private double[][][]
icfft2(double[][][] x)
private double[][][][]
icfft3(double[][][][] x)
private double[][][]
ifftshift(double[][][] in)
private double[][][][]
ifftshift(double[][][][] in)
private double[][]
ifftshift1d(double[][] x)
private double[][]
invDecimatedFreqs(double[][][] fim)
private double[]
ip(double[][][][][] a, double[][][][][] b)
private double[]
ip(double[][][][] a, double[][][][] b)
private double[]
ip(double[][][] a, double[][][] b)
private double
ip(double[][] a, double[][] b)
private void
ippft(double[][][] Y, int[] flag, double[] residual, int[] iter, double[][][] pp1, double[][][] pp2, double ErrTol, int MaxIts, boolean verbose)
private void
ippft3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
private void
ippft3_ref(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
private void
ippftconsts(double[][][] c, double[][][] d, int n)
private double[][]
ippftd(double[][][] pp1, double[][][] pp2, double EPS)
private void
ippftprecomp(int n)
private void
iRadon(double[][][] Y, int[] flag, double[] residual, int[] iter, double[][][] res1, double[][][] res2, double ErrTol, int MaxIts, boolean verbose)
private void
iradon3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][] res, double ErrTol, int MaxIts, boolean verbose)
private void
loadConsts(double[][][] c, double[][][] d, int n)
void
loadppftfilter(int[] precond, double[][][][] filter, java.lang.String fname, boolean verbose)
private double
log2(double input)
private int
lowIdx(int n)
private int[][]
MagicSquare(int n)
private double[][][][]
makeppftfilter(int n, int precond)
private int
matlab_mod(int j, int n)
private double
mult(int k, double alpha, int n)
private int
N(int k, int s)
private double[][][][]
nufft_3d(double[][][][] alpha, double[][] omega, int M)
private double[][][][]
nufft3dauxmx(int n, int M, int m, int q, int[] mu, double[] Px, double[] Py, double[] Pz, double[][] alpha)
private void
OddMagicSquare(int[][] matrix, int n)
private double[][][]
OptimizedAdjPPFT(double[][][] pp1, double[][][] pp2)
private void
OptimizedPPFT(double[][][] res1, double[][][] res2, double[][][] im)
private double[][]
optimizedtansum(double[][] alphain, double[] xin, double[] yin, double eps)
private void
PPFT(double[][][] res1, double[][][] res2, double[][][] im)
private double[][][][][]
ppft3(double[][][][] im)
private double[][][][][]
ppft3_ref(double[][][][] im)
private double[][][]
PrecondAdjPPFT(double[][][] pp1, double[][][] pp2)
private double[][][][]
precondadjppft3(double[][][][][] pp)
private double[][][][]
precondadjppft3_ref(double[][][][][] pp)
private void
prepConstC(double[][][] c, int n)
private void
prepConstD(double[][][] d, int n)
private double[][][]
PtP(double[][][] X)
private double[][][][]
PtP3(double[][][][] X)
private double[][][][]
PtP3_ref(double[][][][] X)
private void
Radon(double[][] res1, double[][] res2, double[][] im)
private double[][][][]
Radon3(double[][][][] im)
private double[][]
recover(double[][] fu, double[][] u, int j, int type, double[] dj, double[] cl, double EPS)
private void
reportResult(java.lang.String testMsg, boolean res, double err)
private void
reportResult(java.lang.String testMsg, int n, boolean res, double err, double t1, double t2)
void
runAlgorithm()
Starts the program.private void
runTest(double[][][][] pp, double ErrTol, int MaxIts, double[][][] ref, java.lang.String description, boolean verbose, boolean trueimage)
private void
runTest(double[][][] pp1, double[][][] pp2, double ErrTol, int MaxIts, double[][] ref, java.lang.String description, boolean verbose, boolean trueimage)
private void
runTest(int n, double[][][][][] pp, double ErrTol, int MaxIts, double[][][][] ref, boolean verbose, boolean doippt3_ref)
private void
saveppftfilter(int precond, double[][][][] filter, java.lang.String fname)
private void
SinglyEvenMagicSquare(int[][] matrix, int n)
private double[][]
slowChirp(double[][] x, double[] A, double[] W, int M)
private void
slowPPFT(double[][][] res1, double[][][] res2, double[][][] im)
private double[][][][][]
slowppft3(double[][][][] im)
private void
slowRadon(double[][] res1, double[][] res2, double[][] im)
private double[][][][]
slowradon3(double[][][][] im)
void
testAdj()
void
testCfft()
void
testChirp()
void
testippft()
void
testippft3()
void
testIRadon()
void
testiRadon3()
void
testOptimizedAdjPPFT()
void
testppft3()
void
testppft3_ref()
void
testprecondAdjPPFT3(boolean ref)
void
testRadon()
private void
topinv(double[][] m1, double[][] m2, double[][] m3, double[][] m4, double[][] c, double[][] r)
private double[][]
topinvmul(double[][] D1, double[][] D2, double[][] D3, double[][] D4, double[][] v)
private double[][]
topmul(double[][] D, double[][] v)
private double[][]
topprep(double[][] c, double[][] r)
private void
topprepinv(double[][] D1, double[][] D2, double[][] D3, double[][] D4, double[][] m1, double[][] m2, double[][] m3, double[][] m4)
private double[][]
topsol(double[][] c, double[][] rin, double[][] y)
private int[]
toUnaliasedCoord(int[] aCoord, int[] N)
private int
toUnaliasedIdx(int idx, int n)
private double[]
trigPoly(double[][][][] im, double ox, double oy, double oz)
private double[]
trigPoly(double[][][] im, double xi1, double xi2)
boolean
verifyImage(double[][][][] im)
private int
verifyPP(double[][][][][] pp)
private double
zabs(double zr, double zi)
zabs computes the absolute value or magnitude of a double precision complex variable zr + j*zi.private void
zdiv(double ar, double ai, double br, double bi, double[] cr, double[] ci)
complex divide c = a/b.private void
zexp(double ar, double ai, double[] br, double[] bi)
complex exponential function b = exp(a).private void
zlog(double ar, double ai, double[] br, double[] bi, int[] ierr)
complex logarithm b = clog(a).private void
zpow(double zr, double zi, double a, double[] br, double[] bi, int[] ierr)
b = z**a = exp(a*log(z))-
Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, finalize, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, generateProgressValues, getDestImage, getElapsedTime, getMask, getMaxProgressValue, getMinProgressValue, getNumberOfThreads, getProgress, getProgressChangeListener, getProgressChangeListeners, getProgressModulus, getProgressStep, getProgressValues, getSrcImage, isCompleted, isImage25D, isMultiThreadingEnabled, isRunningInSeparateThread, isThreadStopped, linkProgressToAlgorithm, linkProgressToAlgorithm, makeProgress, notifyListeners, removeListener, removeProgressChangeListener, run, setCompleted, setImage25D, setMask, setMaxProgressValue, setMinProgressValue, setMultiThreadingEnabled, setNumberOfThreads, setProgress, setProgressModulus, setProgressStep, setProgressValues, setProgressValues, setRunningInSeparateThread, setSrcImage, setStartTime, setThreadStopped, startMethod, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Field Detail
-
UI
private ViewUserInterface UI
-
-
Method Detail
-
runAlgorithm
public void runAlgorithm()
Starts the program.- Specified by:
runAlgorithm
in classAlgorithmBase
-
testCfft
public void testCfft()
-
testChirp
public void testChirp()
-
compare
private void compare(double[][] c1, double[][] c2)
-
testippft
public void testippft()
-
MagicSquare
private int[][] MagicSquare(int n)
-
OddMagicSquare
private void OddMagicSquare(int[][] matrix, int n)
-
DoublyEvenMagicSquare
private void DoublyEvenMagicSquare(int[][] matrix, int n)
-
SinglyEvenMagicSquare
private void SinglyEvenMagicSquare(int[][] matrix, int n)
-
testOptimizedAdjPPFT
public void testOptimizedAdjPPFT()
-
testAdj
public void testAdj()
-
testRadon
public void testRadon()
-
testIRadon
public void testIRadon()
-
runTest
private void runTest(double[][][] pp1, double[][][] pp2, double ErrTol, int MaxIts, double[][] ref, java.lang.String description, boolean verbose, boolean trueimage)
-
testppft3
public void testppft3()
-
reportResult
private void reportResult(java.lang.String testMsg, int n, boolean res, double err, double t1, double t2)
-
testppft3_ref
public void testppft3_ref()
-
reportResult
private void reportResult(java.lang.String testMsg, boolean res, double err)
-
testprecondAdjPPFT3
public void testprecondAdjPPFT3(boolean ref)
-
testippft3
public void testippft3()
-
runTest
private void runTest(int n, double[][][][][] pp, double ErrTol, int MaxIts, double[][][][] ref, boolean verbose, boolean doippt3_ref)
-
testiRadon3
public void testiRadon3()
-
runTest
private void runTest(double[][][][] pp, double ErrTol, int MaxIts, double[][][] ref, java.lang.String description, boolean verbose, boolean trueimage)
-
equals
private void equals(double[][][][][] v1, double[][][][][] v2, double eps, boolean[] ok, double[] error)
-
equals
private void equals(double[][][][] v1, double[][][][] v2, double eps, boolean[] ok, double[] error)
-
lowIdx
private int lowIdx(int n)
-
hiIdx
private int hiIdx(int n)
-
toUnaliasedIdx
private int toUnaliasedIdx(int idx, int n)
-
cdft
private double[][] cdft(double[] x)
-
cdft
private double[][] cdft(double[][] x)
-
cdft2
private double[][][] cdft2(double[][] x)
-
cdft2
private double[][][] cdft2(double[][][] x)
-
cdft3
private double[][][][] cdft3(double[][][] x)
-
cdft3
private double[][][][] cdft3(double[][][][] x)
-
icdft
private double[][] icdft(double[][] x)
-
fftshift1d
private double[][] fftshift1d(double[][] x)
-
ifftshift1d
private double[][] ifftshift1d(double[][] x)
-
cfft
private double[][] cfft(double[][] x)
-
icfft
private double[][] icfft(double[][] x)
-
fftshift
private double[][][] fftshift(double[][][] in)
-
ifftshift
private double[][][] ifftshift(double[][][] in)
-
fftshift
private double[][][][] fftshift(double[][][][] in)
-
ifftshift
private double[][][][] ifftshift(double[][][][] in)
-
cfft2
private double[][][] cfft2(double[][][] x)
-
icfft2
private double[][][] icfft2(double[][][] x)
-
cfft3
private double[][][][] cfft3(double[][][][] x)
-
icfft3
private double[][][][] icfft3(double[][][][] x)
-
frft
private double[][] frft(double[][] x, double alpha)
-
cfrft
private double[][] cfrft(double[][] x, double alpha)
-
log2
private double log2(double input)
-
cfrftV2
private double[][] cfrftV2(double[][] x, double alpha)
-
zabs
private double zabs(double zr, double zi)
zabs computes the absolute value or magnitude of a double precision complex variable zr + j*zi.- Parameters:
zr
- doublezi
- double- Returns:
- double
-
zpow
private void zpow(double zr, double zi, double a, double[] br, double[] bi, int[] ierr)
b = z**a = exp(a*log(z))- Parameters:
zr
-zi
-a
-br
-bi
-ierr
-
-
zlog
private void zlog(double ar, double ai, double[] br, double[] bi, int[] ierr)
complex logarithm b = clog(a).- Parameters:
ar
- doubleai
- doublebr
- double[]bi
- double[]ierr
- int[] ierr = 0, normal return ierr = 1, z = cmplx(0.0, 0.0)
-
zexp
private void zexp(double ar, double ai, double[] br, double[] bi)
complex exponential function b = exp(a).- Parameters:
ar
- doubleai
- doublebr
- double[]bi
- double[]
-
zdiv
private void zdiv(double ar, double ai, double br, double bi, double[] cr, double[] ci)
complex divide c = a/b.- Parameters:
ar
- doubleai
- doublebr
- doublebi
- doublecr
- double[]ci
- double[]
-
ChirpZ
private double[][] ChirpZ(double[][] x, double[] A, double[] W, int M)
-
slowChirp
private double[][] slowChirp(double[][] x, double[] A, double[] W, int M)
-
iRadon
private void iRadon(double[][][] Y, int[] flag, double[] residual, int[] iter, double[][][] res1, double[][][] res2, double ErrTol, int MaxIts, boolean verbose)
-
iradon3
private void iradon3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][] res, double ErrTol, int MaxIts, boolean verbose)
-
fippft3
private void fippft3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
-
ippft3_ref
private void ippft3_ref(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
-
ippft3
private void ippft3(double[][][][] Y, int[] flag, double[] residual, int[] iter, double[][][][][] pp, double ErrTol, int MaxIts, boolean verbose)
-
ippft
private void ippft(double[][][] Y, int[] flag, double[] residual, int[] iter, double[][][] pp1, double[][][] pp2, double ErrTol, int MaxIts, boolean verbose)
-
CG
private void CG(double[][][] Y, int[] flag, double[] relres, int[] iter, double[] absres, double[][][] X, double ErrTol, int MaxIts, double[][][] guess, boolean verbose, double[][][] RefY)
-
CG
private void CG(double[][][][] Y, int[] flag, double[] relres, int[] iter, double[] absres, boolean ref, double[][][][] X, double[][][][] filt, double ErrTol, int MaxIts, double[][][][] guess, boolean verbose, double[][][][] RefY)
-
dirichlet
private double[] dirichlet(double[] t, int m)
-
toUnaliasedCoord
private int[] toUnaliasedCoord(int[] aCoord, int[] N)
-
verifyImage
public boolean verifyImage(double[][][][] im)
-
adjF
private double[][] adjF(double[][] y)
-
chebzeros
private double[] chebzeros(int n)
-
fastfmmresample
private double[][] fastfmmresample(double[][] f, double[] yin, double[] xin, double[] dj, double[] cl, double EPS)
-
optimizedtansum
private double[][] optimizedtansum(double[][] alphain, double[] xin, double[] yin, double eps)
-
floateq
private boolean floateq(double x, double y)
-
floateq
private boolean floateq(double[] x, double[] y)
-
topsol
private double[][] topsol(double[][] c, double[][] rin, double[][] y)
-
topinv
private void topinv(double[][] m1, double[][] m2, double[][] m3, double[][] m4, double[][] c, double[][] r)
-
topmul
private double[][] topmul(double[][] D, double[][] v)
-
topinvmul
private double[][] topinvmul(double[][] D1, double[][] D2, double[][] D3, double[][] D4, double[][] v)
-
topprep
private double[][] topprep(double[][] c, double[][] r)
-
topprepinv
private void topprepinv(double[][] D1, double[][] D2, double[][] D3, double[][] D4, double[][] m1, double[][] m2, double[][] m3, double[][] m4)
-
invDecimatedFreqs
private double[][] invDecimatedFreqs(double[][][] fim)
-
ippftconsts
private void ippftconsts(double[][][] c, double[][][] d, int n)
-
prepConstD
private void prepConstD(double[][][] d, int n)
-
N
private int N(int k, int s)
-
createArray
private int[] createArray(int lower, int upper)
-
compD
private double[] compD(int n, int j, int type)
-
prepConstC
private void prepConstC(double[][][] c, int n)
-
compC
private double[] compC(int n, int j, int type)
-
ippftprecomp
private void ippftprecomp(int n)
-
ippftd
private double[][] ippftd(double[][][] pp1, double[][][] pp2, double EPS)
-
checkInput
private int checkInput(double[][][] pp1, double[][][] pp2)
-
loadConsts
private void loadConsts(double[][][] c, double[][][] d, int n)
-
recover
private double[][] recover(double[][] fu, double[][] u, int j, int type, double[] dj, double[] cl, double EPS)
-
adjGKN
private double[][] adjGKN(double[][] w, int k)
-
adjU
private double[][] adjU(double[][] v)
-
adjE
private double[][] adjE(double[][] v)
-
adjCfrft
private double[][] adjCfrft(double[][] x, double alpha)
-
adjInvF
private double[][] adjInvF(double[][] v)
-
adjPPFT
private double[][][] adjPPFT(double[][][] pp1, double[][][] pp2)
-
PrecondAdjPPFT
private double[][][] PrecondAdjPPFT(double[][][] pp1, double[][][] pp2)
-
OptimizedAdjPPFT
private double[][][] OptimizedAdjPPFT(double[][][] pp1, double[][][] pp2)
-
adjRadon
private double[][] adjRadon(double[][] r1, double[][] r2)
-
ip
private double ip(double[][] a, double[][] b)
-
ip
private double[] ip(double[][][] a, double[][][] b)
-
ip
private double[] ip(double[][][][] a, double[][][][] b)
-
ip
private double[] ip(double[][][][][] a, double[][][][][] b)
-
GKN
private double[][] GKN(double[][] x, int k)
-
GKN3
private double[][] GKN3(double[][] x, int k)
-
PPFT
private void PPFT(double[][][] res1, double[][][] res2, double[][][] im)
-
OptimizedPPFT
private void OptimizedPPFT(double[][][] res1, double[][][] res2, double[][][] im)
-
slowPPFT
private void slowPPFT(double[][][] res1, double[][][] res2, double[][][] im)
-
slowppft3
private double[][][][][] slowppft3(double[][][][] im)
-
trigPoly
private double[] trigPoly(double[][][] im, double xi1, double xi2)
-
trigPoly
private double[] trigPoly(double[][][][] im, double ox, double oy, double oz)
-
Radon
private void Radon(double[][] res1, double[][] res2, double[][] im)
-
Radon3
private double[][][][] Radon3(double[][][][] im)
-
slowRadon
private void slowRadon(double[][] res1, double[][] res2, double[][] im)
-
slowradon3
private double[][][][] slowradon3(double[][][][] im)
-
I1
private double I1(double[][] im, int n, int u, double y)
-
I1
private double I1(double[][][] im, int n, double x, int v, int w)
-
I2
private double I2(double[][] im, int n, double x, int v)
-
I2
private double I2(double[][][] im, int n, int u, double y, int w)
-
I3
private double I3(double[][][] im, int n, int u, int v, double z)
-
PtP
private double[][][] PtP(double[][][] X)
-
cfrftV3_precomp
private void cfrftV3_precomp(double[][][] PQ, double[][][] PZ, int m, double[] alpha)
-
cfrftV3
private double[][][] cfrftV3(double[][][] x, double alpha, double[][][] PQ, double[][][] PZ, int k)
-
ppft3
private double[][][][][] ppft3(double[][][][] im)
-
ppft3_ref
private double[][][][][] ppft3_ref(double[][][][] im)
-
precondadjppft3
private double[][][][] precondadjppft3(double[][][][][] pp)
-
precondadjppft3_ref
private double[][][][] precondadjppft3_ref(double[][][][][] pp)
-
verifyPP
private int verifyPP(double[][][][][] pp)
-
mult
private double mult(int k, double alpha, int n)
-
PtP3
private double[][][][] PtP3(double[][][][] X)
-
PtP3_ref
private double[][][][] PtP3_ref(double[][][][] X)
-
getppfiltname
private java.lang.String getppfiltname(int n)
-
saveppftfilter
private void saveppftfilter(int precond, double[][][][] filter, java.lang.String fname)
-
loadppftfilter
public void loadppftfilter(int[] precond, double[][][][] filter, java.lang.String fname, boolean verbose)
-
makeppftfilter
private double[][][][] makeppftfilter(int n, int precond)
-
nufft_3d
private double[][][][] nufft_3d(double[][][][] alpha, double[][] omega, int M)
-
matlab_mod
private int matlab_mod(int j, int n)
-
nufft3dauxmx
private double[][][][] nufft3dauxmx(int n, int M, int m, int q, int[] mu, double[] Px, double[] Py, double[] Pz, double[][] alpha)
-
FPtP
private double[][][][] FPtP(double[][][][] X, double[][][][] H)
-
applyppftfilter
private double[][][][] applyppftfilter(double[][][][] X, double[][][][] filter)
-
-