]> git.unchartedbackwaters.co.uk Git - francis/psl_presentation_20130611.git/commitdiff
More work on slides.
authorFrancis Russell <francis@unchartedbackwaters.co.uk>
Tue, 11 Jun 2013 07:59:59 +0000 (08:59 +0100)
committerFrancis Russell <francis@unchartedbackwaters.co.uk>
Tue, 11 Jun 2013 08:03:42 +0000 (09:03 +0100)
13 files changed:
.gitignore
Makefile
images-gnuplot/midpoints.gpi [new file with mode: 0644]
images-gnuplot/resampling-standalone-fftw-filtered.dat [new file with mode: 0644]
images-gnuplot/resampling-standalone-fftw-filtered.gpi [new file with mode: 0644]
images-gnuplot/resampling-standalone-fftw.dat [new file with mode: 0644]
images-gnuplot/resampling-standalone-fftw.gpi [new file with mode: 0644]
images-svg/complex-formats.svg [new file with mode: 0644]
images-svg/interpolation-onetep.svg
images-svg/interpolation-phase-shift-1d.svg [new file with mode: 0644]
images-svg/per-dimension-interpolation.svg [new file with mode: 0644]
onetep-phase-shift-fftw.tex [new file with mode: 0644]
presentation.tex

index 8138dbcc3c86cc494f9bc59d38a6acff9d365a89..032d9827311b73a2c27f05691e4d8f6fde0bc4cc 100644 (file)
@@ -13,3 +13,6 @@
 /code/*.tex
 /images-dot/*.tex
 /images-svg/*.pdf
+/images-gnuplot/*.pdf
+/images-gnuplot/*.tex
+/images-gnuplot/build_stamp
index 4fbd70af6e5847834c4f8063b49f27257709ba33..958b0aa04039cf1a556b0f00ab56a5601a55bf25 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,9 +13,17 @@ CODE_TEX_FILES=$(CODE_F90_TEX_FILES) $(CODE_UFL_TEX_FILES)
 DOT_FOLDER=images-dot
 DOT_TEX_FILES=${patsubst %.dot,%.tex,$(wildcard $(DOT_FOLDER)/*.dot)}
 
+GNUPLOT_FOLDER=images-gnuplot/
+GNUPLOT_FOLDER_GENERATOR_FILES=$(wildcard $(GNUPLOT_FOLDER)/*.gpi) $(wildcard $(GNUPLOT_FOLDER)/*.dat)
+GNUPLOT_FOLDER_BUILD_STAMP=$(GNUPLOT_FOLDER)/build_stamp
 
 PDFLATEX_OUTPUT_LOG=pdflatex_output.log
 
+REWRITE_GNUPLOT_EPSLATEX=\
+for epsfile in *.eps; do epstopdf $${epsfile} && rm $${epsfile}; done &&\
+ESCAPED_BUILD_DIR=$$(echo $(1) | sed -r 's/(\/)/\\\1/g') &&\
+for texfile in *.tex; do sed -i -r "s/includegraphics\{([^\/]*)\}/includegraphics\{$${ESCAPED_BUILD_DIR}\/\1\}/g" $${texfile}; done
+
 all: presentation.pdf
 
 display: presentation.pdf
@@ -29,7 +37,7 @@ display-4up: presentation-4up.pdf
 presentation-4up.pdf: presentation.pdf
        pdfnup --nup 2x2 --a4paper --scale 0.95 --frame true presentation.pdf -o presentation-4up.pdf
 
-presentation.pdf: $(IMAGE_FILES) $(SVG_OUTPUTS) $(CODE_TEX_FILES) $(CODE_RAW_FILES) $(DOT_TEX_FILES) $(wildcard *.tex *.sty) pygments.sty
+presentation.pdf: $(IMAGE_FILES) $(SVG_OUTPUTS) $(CODE_TEX_FILES) $(CODE_RAW_FILES) $(DOT_TEX_FILES) $(GNUPLOT_FOLDER_BUILD_STAMP) $(wildcard *.tex *.sty) pygments.sty 
        pdflatex -draftmode presentation &&\
        while(pdflatex presentation | tee $(PDFLATEX_OUTPUT_LOG) && grep "Rerun to get cross-references right" $(PDFLATEX_OUTPUT_LOG)); do true; done &&\
        rm -f $(PDFLATEX_OUTPUT_LOG)
@@ -41,10 +49,13 @@ clean:
         $(BASIS_FUNCTIONS_BUILD_STAMP) \
         $(CODE_TEX_FILES) \
        $(DOT_FOLDER)/*.tex \
+       $(GNUPLOT_FOLDER_BUILD_STAMP) \
+       $(GNUPLOT_FOLDER)/*.pdf \
+       $(GNUPLOT_FOLDER)/*.tex \
         pygments.sty
 
 upload: presentation.pdf
-       rsync -C --progress presentation.pdf shell3.doc.ic.ac.uk:~/public_html/psl_presentation_2013.pdf
+       rsync -C --progress presentation.pdf shell3.doc.ic.ac.uk:~/public_html/psl_presentation_201306.pdf
 
 %.pdf: %.svg
        inkscape -D -A $@ $<
@@ -61,4 +72,10 @@ pygments.sty:
 %.tex: %.dot
        dot2tex --codeonly --usepdflatex -f tikz $< -o $@
 
+$(GNUPLOT_FOLDER_BUILD_STAMP): $(GNUPLOT_FOLDER_GENERATOR_FILES)
+       cd $(GNUPLOT_FOLDER) &&\
+       for gpifile in *.gpi; do gnuplot $${gpifile}; done &&\
+        ${call REWRITE_GNUPLOT_EPSLATEX, $(GNUPLOT_FOLDER)}
+       touch $@
+
 .PHONY: all display clean upload 4up display-4up
diff --git a/images-gnuplot/midpoints.gpi b/images-gnuplot/midpoints.gpi
new file mode 100644 (file)
index 0000000..0643caa
--- /dev/null
@@ -0,0 +1,11 @@
+set terminal epslatex color 10
+set output "midpoints.eps"
+set style line 1 lc rgb '#0060ad' lw 2 pt 7 pi -1 ps 1.5
+set xzeroaxis
+unset xtics
+unset ytics
+set nokey
+set xrange [0:2*pi]
+set multiplot
+plot sin(2*x) + sin(4*x) + cos(3*x) with linespoints lc rgb '#ff0000' pi 8 linewidth 2 pointtype 7 pointsize 2.0 pi 4
+plot sin(2*x) + sin(4*x) + cos(3*x) with linespoints lc rgb '#0060ad' pi 8 linewidth 2 pointtype 7 pointsize 2.0 pi 8
diff --git a/images-gnuplot/resampling-standalone-fftw-filtered.dat b/images-gnuplot/resampling-standalone-fftw-filtered.dat
new file mode 100644 (file)
index 0000000..003a5a9
--- /dev/null
@@ -0,0 +1,23 @@
+#size   naive          padding-aware  phase-shift    
+5       0.000019       0.000015       0.000016       
+7       0.000025       0.000019       0.000018       
+9       0.000098       0.000067       0.000037       
+11      0.000199       0.000134       0.000074       
+13      0.000315       0.000220       0.000123       
+15      0.000445       0.000300       0.000163       
+21      0.001396       0.000982       0.000669       
+25      0.002426       0.001687       0.001142       
+27      0.003370       0.002590       0.001565       
+33      0.007219       0.005465       0.003311       
+35      0.008007       0.006102       0.003976       
+39      0.013129       0.009861       0.005793       
+45      0.020602       0.015612       0.008428       
+49      0.027783       0.021392       0.012545       
+55      0.039221       0.030916       0.017545       
+63      0.062115       0.048851       0.028067       
+65      0.066311       0.052534       0.031252       
+75      0.098265       0.078223       0.048038       
+77      0.130923       0.100775       0.059835       
+81      0.151019       0.114575       0.069888       
+91      0.233345       0.166318       0.098290       
+99      0.318596       0.221242       0.132848       
diff --git a/images-gnuplot/resampling-standalone-fftw-filtered.gpi b/images-gnuplot/resampling-standalone-fftw-filtered.gpi
new file mode 100644 (file)
index 0000000..ec05755
--- /dev/null
@@ -0,0 +1,17 @@
+set terminal epslatex color
+
+set xlabel "Problem Size"
+set ylabel "Time (seconds)"
+set key left top box
+set grid layerdefault linetype -1 linecolor rgb "gray" linewidth 0.2
+set ytics nomirror
+set xtics nomirror
+set xrange [0:*]
+set yrange [0:*]
+set output "resampling-standalone-fftw-filtered.eps"
+
+f(x) = int(x) % 10 == 0
+
+plot "resampling-standalone-fftw-filtered.dat" using 1:2 ti "naïve" with linespoints,\
+     "resampling-standalone-fftw-filtered.dat" using 1:3 ti "padding-aware (ONETEP)" with linespoints,\
+     "resampling-standalone-fftw-filtered.dat" using 1:4 ti "phase-shift" with linespoints
diff --git a/images-gnuplot/resampling-standalone-fftw.dat b/images-gnuplot/resampling-standalone-fftw.dat
new file mode 100644 (file)
index 0000000..f9b910d
--- /dev/null
@@ -0,0 +1,49 @@
+#size   naive          padding-aware  phase-shift    
+5       0.000019       0.000015       0.000016       
+7       0.000025       0.000019       0.000018       
+9       0.000098       0.000067       0.000037       
+11      0.000199       0.000134       0.000074       
+13      0.000315       0.000220       0.000123       
+15      0.000445       0.000300       0.000163       
+17      0.001370       0.000924       0.000612       
+19      0.002010       0.001349       0.000908       
+21      0.001396       0.000982       0.000669       
+23      0.004080       0.002738       0.001901       
+25      0.002426       0.001687       0.001142       
+27      0.003370       0.002590       0.001565       
+29      0.009758       0.006611       0.004529       
+31      0.012635       0.008584       0.005890       
+33      0.007219       0.005465       0.003311       
+35      0.008007       0.006102       0.003976       
+37      0.024749       0.017108       0.011843       
+39      0.013129       0.009861       0.005793       
+41      0.037512       0.026032       0.017544       
+43      0.045216       0.031266       0.021066       
+45      0.020602       0.015612       0.008428       
+47      0.062967       0.043421       0.029291       
+49      0.027783       0.021392       0.012545       
+51      0.050410       0.036424       0.023319       
+53      0.099004       0.067826       0.046351       
+55      0.039221       0.030916       0.017545       
+57      0.073912       0.052673       0.034185       
+59      0.147541       0.100467       0.070029       
+61      0.166863       0.113820       0.079292       
+63      0.062115       0.048851       0.028067       
+65      0.066311       0.052534       0.031252       
+67      0.241163       0.161867       0.116694       
+69      0.145022       0.102993       0.072324       
+71      0.285200       0.195218       0.145291       
+73      0.332839       0.223679       0.170274       
+75      0.098265       0.078223       0.048038       
+77      0.130923       0.100775       0.059835       
+79      0.396457       0.260195       0.189941       
+81      0.151019       0.114575       0.069888       
+83      0.507240       0.349279       0.253765       
+85      0.242405       0.173575       0.117382       
+87      0.331778       0.231736       0.161169       
+89      0.592494       0.400258       0.296694       
+91      0.233345       0.166318       0.098290       
+93      0.428193       0.291792       0.202346       
+95      0.348777       0.257993       0.173070       
+97      0.725529       0.488956       0.359322       
+99      0.318596       0.221242       0.132848       
diff --git a/images-gnuplot/resampling-standalone-fftw.gpi b/images-gnuplot/resampling-standalone-fftw.gpi
new file mode 100644 (file)
index 0000000..e180f71
--- /dev/null
@@ -0,0 +1,14 @@
+set terminal epslatex color
+
+set xlabel "Problem Size"
+set ylabel "Time (seconds)"
+set key left top box
+set grid layerdefault linetype -1 linecolor rgb "gray" linewidth 0.2
+set ytics nomirror
+set xtics nomirror
+set xrange [0:*]
+set yrange [0:0.8]
+set output "resampling-standalone-fftw.eps"
+plot "resampling-standalone-fftw.dat" using 1:2 ti "naïve" with linespoints,\
+     "resampling-standalone-fftw.dat" using 1:3 ti "padding-aware (ONETEP)" with linespoints,\
+     "resampling-standalone-fftw.dat" using 1:4 ti "phase-shift" with linespoints
diff --git a/images-svg/complex-formats.svg b/images-svg/complex-formats.svg
new file mode 100644 (file)
index 0000000..9fcde29
--- /dev/null
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="complex-formats.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="243.07149"
+     inkscape:cy="520"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1680"
+     inkscape:window-height="1036"
+     inkscape:window-x="0"
+     inkscape:window-y="14"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <g
+       id="g3085"
+       transform="translate(70.498047,110)">
+      <rect
+         y="502.36218"
+         x="120"
+         height="50"
+         width="140"
+         id="rect2987-3"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5"
+         y="542.36218"
+         x="189.50195"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="189.50195"
+           id="tspan2991-5"
+           sodipodi:role="line">imag0</tspan></text>
+      <rect
+         y="502.36218"
+         x="-20"
+         height="50"
+         width="140"
+         id="rect2987-3-7"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-4"
+         y="542.36218"
+         x="49.501953"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="49.501953"
+           id="tspan2991-5-4"
+           sodipodi:role="line">real0</tspan></text>
+    </g>
+    <g
+       transform="translate(350.49805,110)"
+       id="g3085-6">
+      <rect
+         y="502.36218"
+         x="120"
+         height="50"
+         width="140"
+         id="rect2987-3-0"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-9"
+         y="542.36218"
+         x="189.50195"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="189.50195"
+           id="tspan2991-5-49"
+           sodipodi:role="line">imag1</tspan></text>
+      <rect
+         y="502.36218"
+         x="-20"
+         height="50"
+         width="140"
+         id="rect2987-3-7-7"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-4-6"
+         y="542.36218"
+         x="49.501953"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="49.501953"
+           id="tspan2991-5-4-9"
+           sodipodi:role="line">real1</tspan></text>
+    </g>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot3129"
+       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
+         id="flowRegion3131"><rect
+           id="rect3133"
+           width="701.42859"
+           height="157.14285"
+           x="-70"
+           y="455.93362" /></flowRegion><flowPara
+         id="flowPara3135" /></flowRoot>    <g
+       id="g3085-4"
+       transform="translate(-290,50)">
+      <rect
+         y="502.36218"
+         x="120"
+         height="50"
+         width="140"
+         id="rect2987-3-74"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-1"
+         y="542.36218"
+         x="189.50195"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="189.50195"
+           id="tspan2991-5-0"
+           sodipodi:role="line">real1</tspan></text>
+      <rect
+         y="502.36218"
+         x="-20"
+         height="50"
+         width="140"
+         id="rect2987-3-7-9"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-4-69"
+         y="542.36218"
+         x="49.501953"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="49.501953"
+           id="tspan2991-5-4-1"
+           sodipodi:role="line">real0</tspan></text>
+    </g>
+    <g
+       transform="translate(-290,110)"
+       id="g3085-6-8">
+      <rect
+         y="502.36218"
+         x="120"
+         height="50"
+         width="140"
+         id="rect2987-3-0-8"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-9-3"
+         y="542.36218"
+         x="189.50195"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="189.50195"
+           id="tspan2991-5-49-8"
+           sodipodi:role="line">imag1</tspan></text>
+      <rect
+         y="502.36218"
+         x="-20"
+         height="50"
+         width="140"
+         id="rect2987-3-7-7-7"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2989-5-4-6-2"
+         y="542.36218"
+         x="49.501953"
+         style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+         xml:space="preserve"><tspan
+           y="542.36218"
+           x="49.501953"
+           id="tspan2991-5-4-9-9"
+           sodipodi:role="line">imag0</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="-220"
+       y="532.36218"
+       id="text3217"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3219"
+         x="-220"
+         y="532.36218">Split</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="220"
+       y="532.36218"
+       id="text3217-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3219-0"
+         x="220"
+         y="532.36218">Interleaved</tspan></text>
+  </g>
+</svg>
index cd5c3c4eb50fcc6a70a392b96286643ce713d63d..a9e8d678731503b4e86684288bd01fa81f292777 100644 (file)
        inkscape:vp_x="-179.45222 : 100.46105 : 0"
        inkscape:vp_y="0 : 500 : 0"
        inkscape:vp_z="178.10571 : 102.82938 : 0"
-       inkscape:persp3d-origin="109.3618 : 277.98199 : 1"
+       inkscape:persp3d-origin="-20.493673 : 297.16038 : 1"
        id="perspective3904-4-6-4-4-9" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-717.8089 : 401.8442 : 0"
+       inkscape:vp_y="0 : 2000 : 0"
+       inkscape:vp_z="712.42284 : 411.31752 : 0"
+       inkscape:persp3d-origin="291.86372 : -125.47647 : 1"
+       id="perspective3904-1-4" />
   </defs>
   <sodipodi:namedview
      id="base"
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="1.4142136"
+     inkscape:zoom="2.0000001"
      inkscape:cx="164.20538"
-     inkscape:cy="663.93568"
+     inkscape:cy="506.30122"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="true"
-     inkscape:window-width="1920"
-     inkscape:window-height="1066"
+     inkscape:window-width="1680"
+     inkscape:window-height="1036"
      inkscape:window-x="0"
      inkscape:window-y="14"
      inkscape:window-maximized="0">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
      inkscape:label="Layer 1"
      inkscape:groupmode="layer"
      id="layer1">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 149.75,487.36218 0,94.5"
+       id="path3224-5-2"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 49.00481,640.38282 100.75,-58.5"
+       id="path3078-0-0-3"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 149.75481,582.00782 90.25,50.375"
+       id="path3080-6-3-7"
+       inkscape:connector-curvature="0" />
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-8"
+       inkscape:perspectiveID="#perspective3904-1-4"
+       inkscape:corner0="0.33868864 : 0.24800513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-0"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 149.73076,487.42706 90,50.38385 0,95 -90,-50.38385 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-0"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 48.75,545.72833 0,95 100.98076,-58.30127 0,-95 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-6"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 48.75,640.72833 90,50.38385 100.98076,-58.30127 -90,-50.38385 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-0"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 48.75,545.72833 90,50.38385 100.98076,-58.30127 -90,-50.38385 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-9"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 138.75,596.11218 0,95 100.98076,-58.30127 0,-95 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-2"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 48.75,545.72833 90,50.38385 0,95 -90,-50.38385 z" />
+    </g>
     <g
        id="g3888"
        transform="translate(10,10.000003)">
            inkscape:connector-curvature="0" />
       </g>
     </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 139.00481,690.63282 101,-58.25"
+       id="path3078-5-4-3-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 139.00481,690.63282 -90,-50.25"
+       id="path3100-0-6-4"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 49,640.36218 0,-94.625"
+       id="path3216-0-6"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 139,690.61218 0,-94.875"
+       id="path3218-3-0"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 240,632.36218 0,-94.625"
+       id="path3220-4-3"
+       inkscape:connector-curvature="0" />
     <g
-       id="g6128"
-       transform="translate(-10,-69.999997)">
+       id="g3102-8-5"
+       transform="translate(-273.5,208.00001)">
       <path
          inkscape:connector-curvature="0"
-         id="path3078-0-0-3"
-         d="m 59.00481,710.38282 100.75,-58.5"
+         id="path3078-9-7"
+         d="m 322.5,337.73718 100.75,-58.5"
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
-         id="path3224-5-2"
-         d="m 159.75,557.36218 0,94.5"
-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3080-6-3-7"
-         d="m 159.75481,652.00782 90.25,50.375"
+         id="path3080-4-3"
+         d="m 423.25,279.36218 90.25,50.375"
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          sodipodi:nodetypes="cc"
          inkscape:connector-curvature="0"
-         id="path3078-5-4-3-6"
-         d="m 149.00481,760.63282 101,-58.25"
-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3100-0-6-4"
-         d="m 149.00481,760.63282 -90,-50.25"
+         id="path3078-5-8-5"
+         d="m 412.5,387.98718 101,-58.25"
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
          inkscape:connector-curvature="0"
-         id="path3216-0-6"
-         d="m 59,710.36218 0,-94.625"
+         id="path3100-9-6"
+         d="m 412.5,387.98718 -90,-50.25"
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         inkscape:corner7="-0.16376615 : 0.20069026 : 0.56860671 : 1"
-         inkscape:corner0="0.33868864 : 0.38944026 : 0 : 1"
-         inkscape:perspectiveID="#perspective3904-4-6-4-4-9"
-         id="g3934-7-1-3-83-9"
-         style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
-         sodipodi:type="inkscape:box3d">
-        <path
-           d="m 159.85547,557.16557 90.16663,50.47713 0,94.375 -90.16663,-50.47713 z"
-           inkscape:box3dsidetype="11"
-           style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
-           id="path3946-9-7-48-4-0"
-           sodipodi:type="inkscape:box3dside" />
-        <path
-           d="m 58.583372,615.63504 0,94.375 101.272098,-58.46947 0,-94.375 z"
-           inkscape:box3dsidetype="6"
-           style="fill:#353564;fill-rule:evenodd;stroke:none"
-           id="path3936-1-0-4-7-3"
-           sodipodi:type="inkscape:box3dside" />
-        <path
-           d="M 58.583372,710.01004 148.75,760.48718 250.0221,702.0177 159.85547,651.54057 z"
-           inkscape:box3dsidetype="13"
-           style="fill:#afafde;fill-rule:evenodd;stroke:none"
-           id="path3944-9-6-8-3-6"
-           sodipodi:type="inkscape:box3dside" />
-        <path
-           d="M 58.583372,615.63504 148.75,666.11218 250.0221,607.6427 159.85547,557.16557 z"
-           inkscape:box3dsidetype="5"
-           style="fill:#550000;fill-rule:evenodd;stroke:none"
-           id="path3938-2-5-9-7-9"
-           sodipodi:type="inkscape:box3dside" />
-        <path
-           d="m 148.75,666.11218 0,94.375 101.2721,-58.46948 0,-94.375 z"
-           inkscape:box3dsidetype="14"
-           style="fill:#d35f5f;fill-rule:evenodd;stroke:none"
-           id="path3942-2-5-3-9-1"
-           sodipodi:type="inkscape:box3dside" />
-        <path
-           d="m 58.583372,615.63504 90.166628,50.47714 0,94.375 -90.166628,-50.47714 z"
-           inkscape:box3dsidetype="3"
-           style="fill:#782121;fill-rule:evenodd;stroke:none"
-           id="path3940-8-7-9-4-0"
-           sodipodi:type="inkscape:box3dside" />
-      </g>
-      <path
-         inkscape:connector-curvature="0"
-         id="path3218-3-0"
-         d="m 149,760.61218 0,-94.875"
-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3220-4-3"
-         d="m 250,702.36218 0,-94.625"
-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="translate(-263.5,278.00001)"
-         id="g3102-8-5">
-        <path
-           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 322.5,337.73718 100.75,-58.5"
-           id="path3078-9-7"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 423.25,279.36218 90.25,50.375"
-           id="path3080-4-3"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 412.5,387.98718 101,-58.25"
-           id="path3078-5-8-5"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cc" />
-        <path
-           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 412.5,387.98718 -90,-50.25"
-           id="path3100-9-6"
-           inkscape:connector-curvature="0" />
-      </g>
     </g>
     <path
        style="fill:none;stroke:#000000;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
diff --git a/images-svg/interpolation-phase-shift-1d.svg b/images-svg/interpolation-phase-shift-1d.svg
new file mode 100644 (file)
index 0000000..d214522
--- /dev/null
@@ -0,0 +1,699 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg3141"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="interpolation-phase-shift-1d.svg">
+  <defs
+     id="defs3143">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path4166"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;">
+      <path
+         id="path4142"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path4160"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="242.42365"
+     inkscape:cy="738.92174"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1680"
+     inkscape:window-height="1036"
+     inkscape:window-x="0"
+     inkscape:window-y="14"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3149" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3146">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <g
+       id="g3935"
+       transform="translate(30,-99.999997)">
+      <rect
+         y="362.36218"
+         x="60"
+         height="30"
+         width="240"
+         id="rect3151"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3153"
+         d="m 90,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3155"
+         d="m 120,392.36218 c 0,-30 0,-30 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3157"
+         d="m 150,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3159"
+         d="m 180,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3161"
+         d="m 210,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3163"
+         d="m 240,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3165"
+         d="m 270,392.36218 0,-30"
+         style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <g
+       id="g3935-5"
+       transform="translate(30,10.000003)"
+       style="fill:#ff0000">
+      <rect
+         y="362.36218"
+         x="60"
+         height="30"
+         width="240"
+         id="rect3151-7"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3153-1"
+         d="m 90,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3155-2"
+         d="m 120,392.36218 c 0,-30 0,-30 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3157-3"
+         d="m 150,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3159-3"
+         d="m 180,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3161-5"
+         d="m 210,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3163-1"
+         d="m 240,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3165-1"
+         d="m 270,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="95"
+       y="247.36218"
+       id="text5755-9-1-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="95"
+         y="247.36218"
+         id="tspan6047">Input Data</tspan><tspan
+         sodipodi:role="line"
+         x="95"
+         y="269.86218"
+         id="tspan4032" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="95"
+       y="332.36218"
+       id="text5755-9-1-7-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="95"
+         y="332.36218"
+         id="tspan6047-6">Frequency</tspan><tspan
+         sodipodi:role="line"
+         x="95"
+         y="354.86218"
+         id="tspan4058">Representation</tspan><tspan
+         sodipodi:role="line"
+         x="95"
+         y="377.36218"
+         id="tspan4032-3" /></text>
+    <g
+       id="g3935-5-0"
+       transform="translate(30,130)"
+       style="fill:#00ff00">
+      <rect
+         y="362.36218"
+         x="60"
+         height="30"
+         width="240"
+         id="rect3151-7-3"
+         style="fill:#00ff00;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3153-1-7"
+         d="m 90,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3155-2-0"
+         d="m 120,392.36218 c 0,-30 0,-30 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3157-3-9"
+         d="m 150,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3159-3-1"
+         d="m 180,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3161-5-9"
+         d="m 210,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3163-1-7"
+         d="m 240,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3165-1-6"
+         d="m 270,392.36218 0,-30"
+         style="fill:#00ff00;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="95"
+       y="552.36218"
+       id="text5755-9-1-7-2-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="95"
+         y="552.36218"
+         id="tspan4058-7">Precomputed</tspan><tspan
+         sodipodi:role="line"
+         x="95"
+         y="574.86218"
+         id="tspan4131">Rotation Values</tspan><tspan
+         sodipodi:role="line"
+         x="95"
+         y="597.36218"
+         id="tspan4032-3-8" /></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 200,302.36218 c 0,40 0,60 0,60"
+       id="path4133"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="250"
+       y="332.36218"
+       id="text5755-9-1-7-8"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="250"
+         y="332.36218"
+         id="tspan6047-9">1D FFT</tspan><tspan
+         sodipodi:role="line"
+         x="250"
+         y="352.36218"
+         id="tspan4032-7" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="162.13916"
+       y="437.36218"
+       id="text5755-9-1-7-2-4"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="164.68213"
+         y="437.36218"
+         id="tspan4058-1">Element-wise </tspan><tspan
+         sodipodi:role="line"
+         x="162.13916"
+         y="457.36218"
+         id="tspan4632">Multiplication</tspan><tspan
+         sodipodi:role="line"
+         x="162.13916"
+         y="477.36218"
+         id="tspan4032-3-2" /></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 255,402.36218 c 0,30 0,30 0,30"
+       id="path4636"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 255,492.36218 0,-35"
+       id="path4638"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="249"
+       y="449.36218"
+       id="text5572"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5574"
+         x="249"
+         y="449.36218"
+         style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">x</tspan></text>
+    <g
+       id="g3935-5-8"
+       transform="translate(355,65.000003)"
+       style="fill:#ff0000">
+      <rect
+         y="362.36218"
+         x="60"
+         height="30"
+         width="240"
+         id="rect3151-7-4"
+         style="fill:#ff0000;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3153-1-6"
+         d="m 90,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3155-2-3"
+         d="m 120,392.36218 c 0,-30 0,-30 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3157-3-8"
+         d="m 150,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3159-3-2"
+         d="m 180,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3161-5-4"
+         d="m 210,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3163-1-1"
+         d="m 240,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3165-1-63"
+         d="m 270,392.36218 0,-30"
+         style="fill:#ff0000;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 150,442.36218 c 55,0 55,0 55,0"
+       id="path5618"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 265,442.36218 140,0"
+       id="path6178"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="632.13916"
+       y="492.36218"
+       id="text5755-9-1-7-2-9-4"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="635"
+         y="492.36218"
+         id="tspan4131-6">Shifted </tspan><tspan
+         sodipodi:role="line"
+         x="635"
+         y="514.86218"
+         id="tspan6395">Frequency </tspan><tspan
+         sodipodi:role="line"
+         x="632.13916"
+         y="537.36218"
+         id="tspan6397">Representation</tspan><tspan
+         sodipodi:role="line"
+         x="632.13916"
+         y="559.86218"
+         id="tspan4032-3-8-3" /></text>
+    <g
+       id="g3935-5-8-9"
+       transform="translate(355,-99.999997)"
+       style="fill:#552200">
+      <rect
+         y="362.36218"
+         x="60"
+         height="30"
+         width="240"
+         id="rect3151-7-4-7"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3153-1-6-4"
+         d="m 90,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3155-2-3-0"
+         d="m 120,392.36218 c 0,-30 0,-30 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3157-3-8-6"
+         d="m 150,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3159-3-2-2"
+         d="m 180,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3161-5-4-9"
+         d="m 210,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3163-1-1-1"
+         d="m 240,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3165-1-63-0"
+         d="m 270,392.36218 0,-30"
+         style="fill:#552200;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="635"
+       y="322.36218"
+       id="text5755-9-1-7-2-9-4-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="635"
+         y="322.36218"
+         id="tspan6397-6">Midpoint Values</tspan><tspan
+         sodipodi:role="line"
+         x="635"
+         y="344.86218"
+         id="tspan4032-3-8-3-7" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="245.71429"
+       y="203.07648"
+       id="text6476"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan6478"
+         x="245.71429"
+         y="203.07648" /></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot6480"
+       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
+         id="flowRegion6482"><rect
+           id="rect6484"
+           width="187.85715"
+           height="68.571426"
+           x="434.28571"
+           y="300.21933" /></flowRegion><flowPara
+         id="flowPara6486"></flowPara></flowRoot>    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="375"
+       y="222.36218"
+       id="text5755-9-1-7-2-9-4-9-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="375"
+         y="222.36218"
+         id="tspan6397-6-0">Interleave</tspan><tspan
+         sodipodi:role="line"
+         x="375"
+         y="244.86218"
+         id="tspan4032-3-8-3-7-9" /></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none;marker-end:url(#Arrow2Mend)"
+       d="m 305,252.36218 c 50,-20 50,-20 50,-20"
+       id="path6512"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 415,252.36218 -40,-20"
+       id="path6514"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 365,202.36218 0,-30"
+       id="path7074"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g7538"
+       transform="translate(55,9.9999996)">
+      <rect
+         y="112.36218"
+         x="130"
+         height="30"
+         width="30"
+         id="rect7304"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="100"
+         height="30"
+         width="30"
+         id="rect3151-5"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="190"
+         height="30"
+         width="30"
+         id="rect7304-8"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="160"
+         height="30"
+         width="30"
+         id="rect3151-5-6"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="250"
+         height="30"
+         width="30"
+         id="rect7304-9"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="220"
+         height="30"
+         width="30"
+         id="rect3151-5-8"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="310"
+         height="30"
+         width="30"
+         id="rect7304-4"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="280"
+         height="30"
+         width="30"
+         id="rect3151-5-7"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="370"
+         height="30"
+         width="30"
+         id="rect7304-2"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="340"
+         height="30"
+         width="30"
+         id="rect3151-5-1"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="430"
+         height="30"
+         width="30"
+         id="rect7304-92"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="400"
+         height="30"
+         width="30"
+         id="rect3151-5-85"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="490"
+         height="30"
+         width="30"
+         id="rect7304-5"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="460"
+         height="30"
+         width="30"
+         id="rect3151-5-2"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="550"
+         height="30"
+         width="30"
+         id="rect7304-28"
+         style="fill:#552200;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+      <rect
+         y="112.36218"
+         x="520"
+         height="30"
+         width="30"
+         id="rect3151-5-88"
+         style="fill:#0000ff;fill-opacity:0.42358081;stroke:#170600;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="375"
+       y="102.36218"
+       id="text5755-9-1-7-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="375"
+         y="102.36218"
+         id="tspan6047-1">Interpolated Data</tspan><tspan
+         sodipodi:role="line"
+         x="375"
+         y="124.86218"
+         id="tspan4032-78" /></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 490,412.36218 0,-90"
+       id="path7599"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="570"
+       y="372.36218"
+       id="text5755-9-1-7-8-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="570"
+         y="372.36218"
+         id="tspan6047-9-5">1D Inverse-FFT</tspan><tspan
+         sodipodi:role="line"
+         x="570"
+         y="392.36218"
+         id="tspan4032-7-7" /></text>
+  </g>
+</svg>
diff --git a/images-svg/per-dimension-interpolation.svg b/images-svg/per-dimension-interpolation.svg
new file mode 100644 (file)
index 0000000..b7eba34
--- /dev/null
@@ -0,0 +1,757 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg8015"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="New document 43">
+  <defs
+     id="defs8017">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path4166"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="211.06648 : 152.2942 : 1"
+       id="perspective3904" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="526.55686 : 161.63676 : 1"
+       id="perspective3904-4" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="211.06648 : -67.705797 : 1"
+       id="perspective3904-1" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="526.55686 : -68.363236 : 1"
+       id="perspective3904-2" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="391.06648 : 252.2942 : 1"
+       id="perspective3904-8" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="616.06648 : 232.48613 : 1"
+       id="perspective3904-5" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="601.06648 : 22.294203 : 1"
+       id="perspective3904-0" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="582.04724 : 40.97933 : 1"
+       id="perspective3904-2-6" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="356.55686 : 51.636769 : 1"
+       id="perspective3904-1-7" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="586.55686 : 271.63676 : 1"
+       id="perspective3904-4-9" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="346.55686 : 261.63676 : 1"
+       id="perspective3904-15" />
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4166-3"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="716.55686 : 51.63677 : 1"
+       id="perspective3904-2-0" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="401.06648 : 52.29421 : 1"
+       id="perspective3904-1-74" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="716.55686 : 281.63676 : 1"
+       id="perspective3904-4-5" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-358.90445 : 200.9221 : 0"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="356.21142 : 205.65876 : 0"
+       inkscape:persp3d-origin="401.06648 : 272.2942 : 1"
+       id="perspective3904-43" />
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-4"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4166-3-3"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-2"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4166-3-6"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-7"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4166-3-64"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="348.47931"
+     inkscape:cy="367.98297"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1680"
+     inkscape:window-height="1036"
+     inkscape:window-x="0"
+     inkscape:window-y="14"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid8031" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata8020">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934"
+       inkscape:perspectiveID="#perspective3904"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 140,557.36219 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 89.50962,586.51282 0,45 L 140,602.36219 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 89.50962,631.51282 45,25.19193 L 185,627.55411 140,602.36219 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 89.50962,586.51282 45,25.19193 L 185,582.55411 140,557.36219 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 134.50962,611.70475 0,45 L 185,627.55411 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 89.50962,586.51282 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-2"
+       inkscape:perspectiveID="#perspective3904-4"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-9"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 455.49038,548.01963 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-3"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 405,577.17026 0,45 50.49038,-29.15063 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-8"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 405,622.17026 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-0"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 405,577.17026 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-1"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 450,602.36219 0,45 50.49038,-29.15064 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-6"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 405,577.17026 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-0"
+       inkscape:perspectiveID="#perspective3904-1"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-1"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 140,777.36218 45,25.19193 0,45 -45,-25.19193 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-8"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 89.50962,806.51282 0,45 L 140,822.36218 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-2"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 89.50962,851.51282 45,25.19192 L 185,847.55411 140,822.36218 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-2"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 89.50962,806.51282 45,25.19192 L 185,802.55411 140,777.36218 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-7"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 134.50962,831.70474 0,45 L 185,847.55411 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-4"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 89.50962,806.51282 45,25.19192 0,45 -45,-25.19192 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-5"
+       inkscape:perspectiveID="#perspective3904-2"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-16"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 455.49038,778.01962 45,25.19193 0,45 -45,-25.19193 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-7"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 405,807.17026 0,45 50.49038,-29.15064 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-1"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 405,852.17026 45,25.19192 50.49038,-29.15063 -45,-25.19193 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-7"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 405,807.17026 45,25.19192 50.49038,-29.15063 -45,-25.19193 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-8"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 450,832.36218 0,45 50.49038,-29.15063 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-1"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 405,807.17026 45,25.19192 0,45 -45,-25.19192 z" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 210,602.36218 180,0"
+       id="path8380"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="320"
+       y="562.36218"
+       id="text9085"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087"
+         x="320"
+         y="562.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="320"
+         y="589.86218"
+         id="tspan9089">in Z</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 135,667.36218 0,100"
+       id="path9091"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="205"
+       y="707.36218"
+       id="text9085-5"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8"
+         x="205"
+         y="707.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="205"
+         y="734.86218"
+         id="tspan9089-8">in Y</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 450,662.36218 0,100"
+       id="path9091-1"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="520"
+       y="702.36218"
+       id="text9085-5-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8-8"
+         x="520"
+         y="702.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="520"
+         y="729.86218"
+         id="tspan9089-8-4">in Y</tspan></text>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-9"
+       inkscape:perspectiveID="#perspective3904-43"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-2"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 330,437.36219 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-4"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 279.50962,466.51282 0,45 L 330,482.36219 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-7"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 279.50962,511.51282 45,25.19193 L 375,507.55411 330,482.36219 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-6"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 279.50962,466.51282 45,25.19193 L 375,462.55411 330,437.36219 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-3"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 324.50962,491.70475 0,45 L 375,507.55411 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-8"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 279.50962,466.51282 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-2-6"
+       inkscape:perspectiveID="#perspective3904-4-5"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-9-2"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 645.49038,428.01963 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-3-1"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 595,457.17026 0,45 50.49038,-29.15063 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-8-9"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 595,502.17026 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-0-8"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 595,457.17026 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-1-2"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 640,482.36219 0,45 50.49038,-29.15064 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-6-8"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 595,457.17026 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-0-4"
+       inkscape:perspectiveID="#perspective3904-1-74"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-1-4"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 330,657.36218 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-8-5"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 279.50962,686.51281 0,45 L 330,702.36218 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-2-2"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 279.50962,731.51281 45,25.19193 L 375,727.5541 330,702.36218 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-2-5"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 279.50962,686.51281 45,25.19193 L 375,682.5541 330,657.36218 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-7-8"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 324.50962,711.70474 0,45 L 375,727.5541 l 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-4-7"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 279.50962,686.51281 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="fill:#d9d9ff;fill-opacity:0.78039216;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="g3934-5-6"
+       inkscape:perspectiveID="#perspective3904-2-0"
+       inkscape:corner0="0.33868864 : 0.24550513 : 0 : 1"
+       inkscape:corner7="0.21330708 : 0.20050513 : 0.14174273 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3946-16-5"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="11"
+         d="m 645.49038,658.01962 45,25.19192 0,45 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3936-7-5"
+         style="fill:#353564;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="6"
+         d="m 595,687.17025 0,45 50.49038,-29.15063 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3944-1-0"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="13"
+         d="m 595,732.17025 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3938-7-8"
+         style="fill:#214478;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="5"
+         d="m 595,687.17025 45,25.19193 50.49038,-29.15064 -45,-25.19192 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3942-8-3"
+         style="fill:#5f8dd3;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="14"
+         d="m 640,712.36218 0,45 50.49038,-29.15064 0,-45 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3940-1-4"
+         style="fill:#002255;fill-rule:evenodd;stroke:none"
+         inkscape:box3dsidetype="3"
+         d="m 595,687.17025 45,25.19193 0,45 -45,-25.19193 z" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 190,797.36218 85,-50"
+       id="path9443"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="290"
+       y="797.36218"
+       id="text9085-5-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8-9"
+         x="290"
+         y="797.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="290"
+         y="824.86218"
+         id="tspan9089-8-7">in X</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="289.28571"
+       y="860.93359"
+       id="text9653"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9655"
+         x="289.28571"
+         y="860.93359" /></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 510,802.36218 85,-50"
+       id="path9443-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="610"
+       y="802.36218"
+       id="text9085-5-3-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8-9-0"
+         x="610"
+         y="802.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="610"
+         y="829.86218"
+         id="tspan9089-8-7-7">in X</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 180,562.36218 85,-50"
+       id="path9443-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="170"
+       y="502.36218"
+       id="text9085-5-3-5"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8-9-6"
+         x="170"
+         y="502.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="170"
+         y="529.86218"
+         id="tspan9089-8-7-0">in X</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 510,572.36218 85,-50"
+       id="path9443-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="610"
+       y="572.36218"
+       id="text9085-5-3-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan9087-8-9-68"
+         x="610"
+         y="572.36218">Interpolate</tspan><tspan
+         sodipodi:role="line"
+         x="610"
+         y="599.86218"
+         id="tspan9089-8-7-05">in X</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="40"
+       y="592.36218"
+       id="text9085-4"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="40"
+         y="592.36218"
+         id="tspan9089-0">Input</tspan><tspan
+         sodipodi:role="line"
+         x="40"
+         y="619.86218"
+         id="tspan9750">Data</tspan></text>
+  </g>
+</svg>
diff --git a/onetep-phase-shift-fftw.tex b/onetep-phase-shift-fftw.tex
new file mode 100644 (file)
index 0000000..782cf42
--- /dev/null
@@ -0,0 +1,76 @@
+\newcommand{\oneteproutinesphaseshiftfftw}{
+\begin{tabularx}{\textwidth}{cXXX}
+\hline
+\bf{Test} & \bf{Original (s)} & \bf{Modified (s)} & \bf{Reduction} \\
+\hline
+test01&     49.47&     35.27&     28.70\%\\
+test02&     61.51&     44.56&     27.56\%\\
+test03&     40.67&     29.66&     27.07\%\\
+test04&     90.99&     61.51&     32.40\%\\
+test05&     47.78&     34.46&     27.88\%\\
+test06&      3.73&      2.73&     26.81\%\\
+test07&      8.72&      6.46&     25.92\%\\
+test08&     93.33&     66.83&     28.39\%\\
+test09&      3.47&      2.35&     32.28\%\\
+test10&    361.81&    265.67&     26.57\%\\
+test11&     33.27&     23.04&     30.75\%\\
+test12&     57.65&     40.19&     30.29\%\\
+test13&     17.37&     12.30&     29.19\%\\
+test14&     40.55&     29.74&     26.66\%\\
+test15&     26.05&     18.55&     28.79\%\\
+test16&     33.93&     25.67&     24.34\%\\
+test18&    107.61&     77.48&     28.00\%\\
+test19&     73.72&     52.60&     28.65\%\\
+test20&     95.72&     62.37&     34.84\%\\
+test21&      2.68&      2.13&     20.52\%\\
+test22&     53.47&     39.34&     26.43\%\\
+test23&     22.55&     15.40&     31.71\%\\
+test24&     22.81&     15.42&     32.40\%\\
+%test26&      3.49&      2.46&     29.51\%\\
+%test27&     74.33&     52.47&     29.41\%\\
+%test28&     23.34&     15.77&     32.43\%\\
+%test29&     29.75&     21.55&     27.56\%\\
+%test30&     14.52&     10.73&     26.10\%\\
+%test31&     33.06&     20.72&     37.33\%\\
+\hline
+\end{tabularx}
+}
+
+\newcommand{\onetepoverallphaseshiftfftw}{
+\begin{tabularx}{\textwidth}{cXXX}
+\hline
+\bf{Test} & \bf{Original (s)} & \bf{Modified (s)} & \bf{Reduction} \\
+\hline
+test01&    131.43&    111.06&     15.49\%\\
+test02&    136.79&    118.22&     13.58\%\\
+test03&    619.04&    606.73&      1.99\%\\
+test04&    169.56&    139.72&     17.60\%\\
+test05&    107.47&     93.61&     12.90\%\\
+test06&     27.02&     26.35&      2.49\%\\
+test07&     49.99&     45.57&      8.85\%\\
+test08&    296.68&    247.57&     16.55\%\\
+test09&     15.82&     14.49&      8.44\%\\
+test10&   1126.06&    955.09&     15.18\%\\
+test11&     90.85&     77.61&     14.57\%\\
+test12&    154.00&    131.92&     14.34\%\\
+test13&    231.26&    223.75&      3.25\%\\
+test14&    272.05&    255.62&      6.04\%\\
+test15&     97.64&     83.10&     14.90\%\\
+test16&     98.63&     87.28&     11.51\%\\
+%test17&     55.70&     54.84&      1.55\%\\
+test18&    343.04&    294.95&     14.02\%\\
+test19&    180.72&    156.56&     13.37\%\\
+test20&    260.15&    221.94&     14.69\%\\
+test21&     11.45&     10.95&      4.35\%\\
+test22&    125.30&    109.90&     12.29\%\\
+test23&     46.18&     38.92&     15.72\%\\
+test24&     46.46&     38.85&     16.39\%\\
+%test26&    409.71&    407.21&      0.61\%\\
+%test27&   1700.92&   1662.08&      2.28\%\\
+%test28&    893.35&    886.74&      0.74\%\\
+%test29&     69.91&     61.32&     12.30\%\\
+%test30&     67.33&     62.03&      7.87\%\\
+%test31&     91.14&     73.04&     19.86\%\\
+\hline
+\end{tabularx}
+}
index 34ca1ad880cb900e9131706f589c3c5187064b0e..ee1e93908b3a67f360f05bca4ab6536f6521f7dc 100644 (file)
@@ -9,8 +9,10 @@
 \usepackage{ucs}
 \usepackage{alltt}
 \usepackage[utf8x]{inputenc}
+\usepackage{tabularx}
 
 \input{pygments.sty}
+\input{onetep-phase-shift-fftw}
 
 \title[PSL Meeting]{PSL Meeting Presentation}
 \subtitle{Exploring Performance Optimisation Opportunities in ONETEP}
@@ -86,7 +88,7 @@ dimension.
 
 \frame{
 
-\frametitle{Fourier Interpolation of FFT-boxes}
+\frametitle{ONETEP's Approach to Interpolation}
 
 \small
 ONETEP performs transforms in each dimension so each FFT only operates on 50\%
@@ -101,6 +103,173 @@ zeroes instead of 87.5\% of the naïve strategy.
 
 }
 
+\frame{
+
+\frametitle{Phase-Shift Approach to Interpolation}
+
+We have a signal discretely sampled at the blue points, but we want to know the
+value at both the blue and red points. We can find these if we shift the signal by
+half a sample.
+
+\centering
+\resizebox{0.80\textwidth}{!}{
+\input{images-gnuplot/midpoints}
+}
+
+}
+
+\frame{
+
+\frametitle{Phase-Shift Interpolation in 1D}
+
+\begin{itemize}
+
+\small
+\item We use a 1D FFT to compute the frequency representation, apply a phase shift,
+then trasform back to compute the values of the midpoints.
+
+\item We interleave the original data and midpoints to produce the interpolated
+  values.
+
+\item We never operate on zeros (except those in the original input).
+
+\end{itemize}
+
+\centering
+\resizebox{0.60\textwidth}{!}{
+\includegraphics{images-svg/interpolation-phase-shift-1d}
+}
+
+}
+
+\frame{
+
+\frametitle{Phase-Shift Interpolation in 3D}
+
+\begin{itemize}
+
+\item Interpolation is done by dimension, with the most cache inefficient done
+  first.
+
+\item We interleave the original data and the 7 interpolated blocks as a final
+  step.
+
+\end{itemize}
+
+\centering
+\resizebox{0.60\textwidth}{!}{
+\includegraphics{images-svg/per-dimension-interpolation}
+}
+
+}
+
+\frame{
+
+\frametitle{Performance Results with FFTW\footnote{Core i7-2600, 3.4GHz, 8MB L2
+cache, FFTW 3.3}}
+
+\footnotesize
+Results are difficult to interpret because of FFTW's performance at different
+problem sizes due to the factorisations it chooses.
+
+\centering
+\resizebox{0.85\textwidth}{!}{
+\input{images-gnuplot/resampling-standalone-fftw}
+}
+
+}
+
+\frame{
+
+\frametitle{Performance Results with FFTW\footnote{Core i7-2600, 3.4GHz, 8MB L2
+cache, FFTW 3.3}}
+
+\footnotesize
+We can filter the results to those which FFTW likes best (products of small
+primes). Specifically, sizes of the form $2^a3^b5^c7^d11^e13^f$ where $e+f<2$.
+
+\centering
+\resizebox{0.85\textwidth}{!}{
+\input{images-gnuplot/resampling-standalone-fftw-filtered}
+}
+
+}
+
+\frame
+{
+\frametitle{Performance within ONETEP}
+
+\begin{itemize}
+
+\item In our standalone benchmarks, our results give around a 35\% reduction in
+  execution time over ONETEP's approach for FFTW's preferred sizes.
+
+\item In practise, we found the actual reduction to be a lot less and overall
+reduction in execution time to usually be less than 5\%.
+
+\item When doing Fourier interpolation, ONETEP spends a lot of time in its
+  modifying data layouts before calling FFTW.
+
+\item Specifically, converting from a split to interleaved representation of
+  complex numbers. Sometimes this is due to two sets of real operands being
+  merged so interpolation can be done on both simultaneously.
+
+\vspace{1em}
+\centering
+\resizebox{0.8\textwidth}{!}{
+\includegraphics{images-svg/complex-formats}
+}
+
+
+
+\end{itemize}
+
+}
+
+\frame
+{
+\frametitle{Making the new interpolation work better with ONETEP}
+
+\begin{itemize}
+
+\item I discovered that FFTW provides a ``guru'' interface that makes it
+possible to pass in data in data in the split format.
+
+\item I wrote a new implementation of the interpolation routines that could
+  accept and return data in this format without remarshalling.
+
+\item Also wrote a routine that returned the product of the real and complex
+  parts as part of the re-interleave step, avoiding the need for the calling
+  routine in ONETEP to have to iterative over the data again.
+
+\end{itemize}
+}
+
+\frame{
+
+\frametitle{ONETEP Interpolation Routine Timings\footnote{Core i7-2600, 3.4GHz,
+8MB L2 182 cache, FFTW 3.3}}
+
+\centering
+\resizebox{0.65\textwidth}{!}{
+\oneteproutinesphaseshiftfftw
+}
+
+}
+
+\frame{
+
+\frametitle{ONETEP Total Execution Time Timings\footnote{Core i7-2600, 3.4GHz,
+8MB L2 182 cache, FFTW 3.3}}
+
+\centering
+\resizebox{0.65\textwidth}{!}{
+\onetepoverallphaseshiftfftw
+}
+
+}
+
+
 
 \end{document}